怎么暂时禁用关闭按钮,怎么才能在对话框中的按回车而不去响应OnOK的代码? rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载你的对话框中的PreTranslateMessage函数,在函数中如下处理BOOL CMyDlg::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYDOWN) { if(pMsg->wParam == 0x0d) { return TRUE; } } return CDialog::PreTranslateMessage(pMsg);} 重载OnOK OnCancel 然后里面什么也不作 基于对话框的应用程序如何屏蔽按ESC键关闭窗口在BOOL C***Dlg::PreTranslateMessage(MSG* pMsg)中if (pMsg->message == WM_KEYDOWN){ if (pMsg->wParam == VK_ESCAPE) //Esc键不退出程序 return TRUE;} 屏蔽关闭CMenu *pSystemMenu=GetSystemMenu(FALSE); pSystemMenu->DeleteMenu(8,MF_BYPOSITION); pSystemMenu->DeleteMenu(7,MF_BYPOSITION); pSystemMenu->DeleteMenu(5,MF_BYPOSITION); pSystemMenu->DeleteMenu(4,MF_BYPOSITION); pSystemMenu->DeleteMenu(3,MF_BYPOSITION); pSystemMenu->DeleteMenu(2,MF_BYPOSITION);//好象是它,你试一下. 处理WM_SYSCOMMAND消息,就是OnSysCommand(UINT nID, LPARAM lParam ); 判断当nID为SC_CLOSE的时候,就是点了关闭按钮,直接返回就行了至于按回车的时候不响应OnOK(),正常的,IDOK的按钮应该是Default Button,把这个属性去掉就行了,不用去处理消息,太麻烦了 只是想暂时禁用,按楼上的方法,加个BOOL变量判断也行,但还是觉得把关闭按钮变灰更好第二个问题,去掉Default Button是不行的,其实我把OK按钮都删掉了,否则就让它回车响应OnOK也没事的 重载ok函数就行了,因为焦点默认在ok上 禁用关闭按钮可以在OnInitDialog 中 加入下面代码:CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){ pSysMenu->DeleteMenu(SC_CLOSE,MF_BYCOMMAND);}重载对话框的OnOK函数,可以屏蔽回车键void CMyDlg::OnOK(){} 一个比较有深度的问题,望各位大侠前来相助。。。 通过WINSOCK获取网页内容,为什么每次得到的都是"错误:您所请求的网址(URL)无法获取"? 关掉VC后程序运行慢 关于CreateProcess问题,有些弱。 VC程序中如何屏蔽ESC退出对话框 BSTR的使用 帮我做到习题好吗?很简单的! 在散 MFC单文档工程,已经实现拉动矩形框能伸缩,但是矩形框离里的图片却不做任何改变 无法用navicat连接上数据库 小弟最近学习STL,遇到了一个和sort函数相关莫名其妙的问题,高手请进! 对话框工程,怎么使用互斥,限制只能打开一个窗口?谢谢
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN) {
if(pMsg->wParam == 0x0d) {
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
然后里面什么也不作
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_ESCAPE) //Esc键不退出程序
return TRUE;
}
CMenu *pSystemMenu=GetSystemMenu(FALSE);
pSystemMenu->DeleteMenu(8,MF_BYPOSITION);
pSystemMenu->DeleteMenu(7,MF_BYPOSITION);
pSystemMenu->DeleteMenu(5,MF_BYPOSITION);
pSystemMenu->DeleteMenu(4,MF_BYPOSITION);
pSystemMenu->DeleteMenu(3,MF_BYPOSITION);
pSystemMenu->DeleteMenu(2,MF_BYPOSITION);//好象是它,你试一下.
判断当nID为SC_CLOSE的时候,就是点了关闭按钮,直接返回就行了至于按回车的时候不响应OnOK(),正常的,IDOK的按钮应该是Default Button,把这个属性去掉就行了,不用去处理消息,太麻烦了
第二个问题,去掉Default Button是不行的,其实我把OK按钮都删掉了,否则就让它回车响应OnOK也没事的
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
pSysMenu->DeleteMenu(SC_CLOSE,MF_BYCOMMAND);
}
重载对话框的OnOK函数,可以屏蔽回车键
void CMyDlg::OnOK()
{
}