昨天有人提过了这个问题,当时没在意,今天我也遇到了同样的问题,特向各位大侠请教!问题:如何避免按下ESC,对话框就关闭!也即我要屏蔽掉ESC键的关闭对话框的默认设置!
解决方案 »
- 想使用自定义消息处理函数不都是callback吗//怎么使用APIENTRY也可以?
- 知道了一个URL,怎样利用这个URL把文件下载下来,当然是利用socket编程
- 我重绘了标题栏,并且想重绘标题栏按钮,但原来系统绘制的按钮会时不时的显示出来,能屏蔽掉吗?
- 国外不断推出先进的开发工具主要目的之一是让他国使用者逐渐远离底层技术而让他们不自觉地、情愿地永远被自己牵着鼻子走!
- 哪位大哥提供一个支持win2000 server分区的工具下载连接
- 请问如何知道窗口的状态是不是最小化?
- VC6中重载cout的操作符<<,这样都能错误!为什么iostream就错iostream.h就不好?
- 请教
- 终于拿到理想的工资了
- 一个单文档结构,由VIEW类事件产生一窗口,而窗口数据在改变后返回给VIEW类,VIEW类包含窗口类头文件,窗口类包含VIEW类头文件,就引起编译报错,请各位大虾指教
- 请问当非阻塞的socket发生select超时时,我如何知道是否接收缓冲里已经收到了UDP数据包呢?
- 关于手机短信息编程的讨论
就行了
{
if (pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam==VK_ESCAPE)
return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}
class CAboutDlg : public CDialog
{
...
protected:
virtual void OnCancel();
...
}
void CAboutDlg::OnCancel()
{
// TODO: Add extra cleanup here
//Do nothing!
}
{
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}我想应该是可以了,没有测试,我是用SDK的,MFC不能太擅长.
删除里面的所有内容,
重载OnClose()函数会使你的窗口关闭不了
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam==VK_ESCAPE)
return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}
2〉重载onCancel()函数
具体的实现过程可以参考<vc++技术内幕第4版>106页不过推荐用地一种方法,因为正如Zark(金陵五月) ( ) 说的那样
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam==VK_ESCAPE)
return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}
2)重载OnCancel()函数
具体参见<vc++技术内幕第4版〉106页
推荐用第一种方法
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN)
{
if (pMsg->wParam==VK_ESCAPE)
return FALSE;
}
return CDialog::PreTranslateMessage(pMsg);
}
2)重载OnCancel()函数
具体参见<vc++技术内幕第4版〉106页
推荐用第一种方法
但是重载PreTranslateMeesage()对大的程序维护有利