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);
}
{
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);
}
相关文章推荐
- VC MFC 屏蔽ESC和ENTER键关闭对话框
- VC MFC 屏蔽ESC和ENTER键关闭对话框
- vc中对话框如何屏蔽ESC和ENTER键
- VC中对话框如何屏蔽ESC和ENTER键
- VC MFC 屏蔽ESC和ENTER键关闭对话框
- 屏蔽Enter键和Esc键
- MFC对话框程序屏蔽ESC和ENTER键退出
- 屏蔽窗口退出快捷键ESC,Alt+F4
- VC 屏蔽 ENTER或者ESC键 退出事件
- vc中对话框如何屏蔽ESC和ENTER键
- 总结下 VC 屏蔽 ALT+F4 的办法
- MFC下屏蔽ESC、回车键以及ALT+F4
- MFC用代码实现屏蔽ESC和Enter键按下,对话框窗体关闭或者消失的问题
- VC屏蔽Enter和ESC
- MFC对话框程序屏蔽ESC和ENTER键退出,完美解决方案
- VC屏蔽Enter和ESC退出程序
- 屏蔽XP系统中的Enter、Esc、Alt+F4
- VC屏蔽Enter和ESC退出程序
- VS2010 MFC中屏蔽ESC和ENTER键关闭对话框的方法
- 屏蔽Dialog对话框中的Esc和Enter键的思路