使回车键失效:重载OnOK()函数
afx_msg void OnOK();
void CTestDlg::OnOK()
{
可以不写任何代码
}
使ESC失效:重载 OnCancel()
afx_msg void OnCancel();
void OnCancel()
{
}
如果同时使ESC和ENTER键失效了,窗口好象就不能关闭了,点击X按钮也不行,这时建议你在
void CClockDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else if(nID == SC_CLOSE)
OnExit(); //加入这两行,自行处理关闭窗口
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
重载PreTranslateMessage()函数。
如下:
BOOL CTest1Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
BOOL bHandleMsg=FALSE;
if(VK_ESCAPE==pMsg->wParam)
bHandleMsg=TRUE;
return (TRUE==bHandleMsg?TRUE:CDialog::PreTranslateMessage(pMsg));
}
afx_msg void OnOK();
void CTestDlg::OnOK()
{
可以不写任何代码
}
使ESC失效:重载 OnCancel()
afx_msg void OnCancel();
void OnCancel()
{
}
如果同时使ESC和ENTER键失效了,窗口好象就不能关闭了,点击X按钮也不行,这时建议你在
void CClockDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else if(nID == SC_CLOSE)
OnExit(); //加入这两行,自行处理关闭窗口
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
重载PreTranslateMessage()函数。
如下:
BOOL CTest1Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
BOOL bHandleMsg=FALSE;
if(VK_ESCAPE==pMsg->wParam)
bHandleMsg=TRUE;
return (TRUE==bHandleMsg?TRUE:CDialog::PreTranslateMessage(pMsg));
}