您的位置:首页 > 其它

create and destory MFC modeless dialog

2010-10-09 11:05 351 查看
new and create

void CProgramDlg::OnBnClickedButton1()
{
CDlgModeless * dlg = new CDlgModeless();
dlg->Create(CDlgModeless::IDD, this);
dlg->ShowWindow(SW_SHOW);
}


需要处理,non-client area destory 消息,OK 按钮,Cancel 按钮

BEGIN_MESSAGE_MAP(CDlgModeless, CDialog)
ON_WM_NCDESTROY()
ON_BN_CLICKED(IDOK, &CDlgModeless::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &CDlgModeless::OnBnClickedCancel)
END_MESSAGE_MAP()


在 non-client area destroy 时,delete 上面 new 出来的对话框

void CDlgModeless::OnNcDestroy()
{
CDialog::OnNcDestroy();

delete this;
}


在 OK 和 Cancel 时,调用 DestroyWindow,它会发出 WM_NCDESTORY

void CDlgModeless::OnBnClickedOk()
{
if( UpdateData(true) )
DestroyWindow();
}

void CDlgModeless::OnBnClickedCancel()
{
DestroyWindow();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: