对话框的使用
1.添加对话框资源
2.定义一个自己的对话框类(CMyDlg),管理对话框资源,派生自CDialog或CDialogEx均可
对话框架构
#include <afxwin.h>
#include "resource.h"
class CMyDlg :public CDialog {
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnIdok();
afx_msg void OnIdcancel();
};
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_COMMAND(IDOK, &CMyDlg::OnIdok)
ON_COMMAND(IDCANCEL, &CMyDlg::OnIdcancel)
END_MESSAGE_MAP()
class CMyWinApp : public CWinApp {
public :
virtual BOOL InitInstance();
};
BOOL CMyWinApp::InitInstance() {
CMyDlg* pdlg = new CMyDlg;
pdlg->Create(IDD_DIALOG1);
m_pMainWnd = pdlg;
pdlg->ShowWindow(SW_SHOW);
return TRUE;
}
CMyWinApp theApp;
void CMyDlg::OnIdok()
{
// TODO: 在此添加命令处理程序代码
//CDialog::OnOK();//将对话框隐藏,并没有消失
::DestroyWindow(this->m_hWnd);
}
void CMyDlg::OnIdcancel()
{
// TODO: 在此添加命令处理程序代码
DestroyWindow();
}
模态对话框
#include <afxwin.h>
#include "resource.h"
class CMyDlg:public CDialog {
public:
enum{IDD=IDD_DIALOG1};
CMyDlg():CDialog(IDD) {
}
};
class CMyWinApp:public CWinApp {
public:
virtual BOOL InitInstance();
};
BOOL CMyWinApp::InitInstance() {
CMyDlg dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
return TRUE;
}
CMyWinApp theApp;