MFC —— 隨心修改Dialog的Caption

修改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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章