您的位置:首页 > 其它

vc 简单屏蔽alt+F4键、ESC和ENTER键

2008-11-13 21:54 447 查看
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
if(nID==SC_CLOSE&&lParam==0)
{
return;
}
CFrameWnd::OnSysCommand(nID, lParam);
}

按下ESC和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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: