不知道下面这两个代码大家用过没有
http://www.codeproject.com/docking/pinnabledock.asp?df=100&forumid=29732&select=1807908&msg=1807908
和
http://www.vckbase.com/document/viewdoc/?id=1074
在这两个程序里按escape和enter会出现莫名奇妙的对话框消失的问题,有解决的办法么?
http://www.codeproject.com/docking/pinnabledock.asp?df=100&forumid=29732&select=1807908&msg=1807908
和
http://www.vckbase.com/document/viewdoc/?id=1074
在这两个程序里按escape和enter会出现莫名奇妙的对话框消失的问题,有解决的办法么?
方法一: (1) 重载OnCancel和OnOk,屏蔽其中的CDialog::OnCancel()和CDialog::OnOk();
(2) 添加以下代码
void CTest6Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout; //if you have an about dialog
dlgAbout.DoModal();
}
else if ((nID & 0xFFF0) == SC_CLOSE)
{
//用户点击右上角"X"
EndDialog(IDOK);
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
} 方法二: BOOL CTest6Dlg::PreTranslateMessage(MSG* pMsg)
{
if ( pMsg->message == WM_KEYDOWN )
{
switch(pMsg->wParam)
{
case VK_ESCAPE:
return TRUE; //直接返回TRUE
break;
case VK_RETURN:
return TRUE;
break;
}
}
return CDialog::PreTranslateMessage(pMsg);
}