修改Caption的函數:
SetWindowText(my_title);
以用戶登錄對話框爲例,如果想要隨Dialog調用的場景隨心修改它的Caption,可使用以下方法:
#pragma once
// CDlgLogin 對話框
class CDlgLogin : public CDialogEx
{
DECLARE_DYNAMIC(CDlgLogin)
public:
CDlgLogin(CWnd* pParent = NULL); // 標準構造函數
virtual ~CDlgLogin();
// 對話框數據
enum { IDD = IDD_DIALOG_LOGIN };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
CString m_strUsername;
CString m_strPassword;
//Caption
CString m_strDlgCaption;
public:
afx_msg void OnBnClickedOk();
virtual BOOL OnInitDialog();
};
// DlgLogin.cpp : 實現文件
//
#include "stdafx.h"
#include "DlgLogin.h"
#include "afxdialogex.h"
// CDlgLogin 對話框
IMPLEMENT_DYNAMIC(CDlgLogin, CDialogEx)
CDlgLogin::CDlgLogin(CWnd* pParent /*=NULL*/)
: CDialogEx(CDlgLogin::IDD, pParent)
, m_strUsername(_T(""))
, m_strPassword(_T(""))
{
}
CDlgLogin::~CDlgLogin()
{
}
void CDlgLogin::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_USERNAME, m_strUsername);
DDX_Text(pDX, IDC_PASSWORD, m_strPassword);
}
BEGIN_MESSAGE_MAP(CDlgLogin, CDialogEx)
ON_BN_CLICKED(IDOK, &CDlgLogin::OnBnClickedOk)
END_MESSAGE_MAP()
// CDlgLogin 消息處理程序
void CDlgLogin::OnBnClickedOk()
{
UpdateData(TRUE);
// TODO: 在此添加控件通知處理程序代碼
CDialogEx::OnOK();
}
BOOL CDlgLogin::OnInitDialog()
{
CDialogEx::OnInitDialog();
//修改Caption
SetWindowText(m_strDlgCaption);
return TRUE; // return TRUE unless you set the focus to a control
}
場景1:
CDlgLogin clsLogin;
//設定Caption
clsLogin.m_strDlgCaption = _T("普通用戶登錄");
//模態對話框
if (clsLogin.DoModal() == IDOK)
{
strUser = clsLogin.m_strUsername;
strPassword = clsLogin.m_strPassword;
}
場景2:
CDlgLogin clsLogin;
clsLogin.m_strDlgCaption = _T("管理員登錄");
if(clsLogin.DoModal()==IDOK)
{
strUser = clsLogin.m_strUsername;
strPassword = clsLogin.m_strPassword;
}