我在CPropertySheet中 AddPage(&m_CProperpag)//m_CProperpag是CPropertyPage类
后,运行程序挺好的,可是只要一不小心碰了回车程序就退出,如何要求用户选择"关闭"后再退出?BOOL bResult = CPropertySheet::OnInitDialog();
{
// TODO: Add your specialized code here CWnd* myCtl;
myCtl = CWnd::GetDlgItem(IDOK);
myCtl->ShowWindow(false);
myCtl = CWnd::GetDlgItem(IDHELP);
myCtl->ShowWindow(false);
CWnd::SetDlgItemText(IDCANCEL,"关闭"); CWnd::Default();
}
后,运行程序挺好的,可是只要一不小心碰了回车程序就退出,如何要求用户选择"关闭"后再退出?BOOL bResult = CPropertySheet::OnInitDialog();
{
// TODO: Add your specialized code here CWnd* myCtl;
myCtl = CWnd::GetDlgItem(IDOK);
myCtl->ShowWindow(false);
myCtl = CWnd::GetDlgItem(IDHELP);
myCtl->ShowWindow(false);
CWnd::SetDlgItemText(IDCANCEL,"关闭"); CWnd::Default();
}
if((pMsg->message == WM_KEYDOWN)&&(pMsg->wParam==VK_RETURN))return TRUE;
{
if(pMsg->message == WM_KEYDOWN)
{
switch(pMsg->wParam)
{
case VK_RETURN://屏蔽回车
return TRUE;
case VK_ESCAPE://屏蔽Esc
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
将其中的OnOk();和OnCancel();注释掉
在OnClose()中DestroyWindow()
2、重载对话框的PreTranslateMessage()函数,在函数中进行如下处理
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
{
switch(pMsg->wParam){
case 0x0d://回车键
return false;
case VK_ESCAPE://esc键
return false;
}
}
return CDialog::PreTranslateMessage(pMsg);
}