對話框的使用
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;