重载PreTranslateMessage函数屏蔽回车和ESC的消息:
BOOL C***Dlg::PreTranslateMessage(MSG* pMsg)
{
if(WM_KEYDOWN == pMsg->message )
{
UINT nKey = (int) pMsg->wParam;
if( VK_RETURN == nKey || VK_ESCAPE == nKey )
return TRUE ;
}
return CDialog::PreTranslateMessage(pMsg);
}
关于PreTranslateMessage函数:
MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的方式向窗口直接发送的而不经过消息队列的消息根本不会理睬PreTranslateMessage()的存在。
一、是否调用TranslateMessage()和DispatchMessage()是由一个名称为PreTranslateMessage()函数的返回值决定的,如果该函数返回TRUE,则不会把该消息分发给窗口函数处理。
二、传给PreTranslateMessage()的消息是未经翻译过的消息,它没有经过TranslateMessage()处理。可以在该函数中使用(pMsg->wParam==VK_RETURN)来拦截回车键。
三、在WindowProc里不能处理WM_Char消息。
四、SetWindowText会发送WM_Char给窗口。
五、PeekMessage和GetMessage的区别:
GetMessage在没有消息的时候等待消息,cpu当然低
PeekMessage没有消息的时候立刻返回,所以cpu占用率高。
因为游戏不能靠windows消息驱动,所以要用PeekMessage();
分享到:
相关推荐
VC屏蔽Enter和ESC退出程序.txtVC屏蔽Enter和ESC退出程序.txt
摘要:VC/C++源码,界面编程,对话框 VC++如何屏蔽窗体对话框按ESC或ENTER键退出的功能,也就是说,当窗体打开的时候,按ESC或ENTER键不能关闭窗口,也就是让这两个键失效,源码实例运行截图如上所示,不过从截图上...
1.网页游戏登录器,使用webbrowser。 2.防止webbrowser网页跳转,强行在程序浏览器中...3.重载PreTranslateMessage,实现屏蔽vc6基本对话框默认的回车和ESC键退出。 4.实时获取点击网页flash游戏时,鼠标点击的坐标。
运用vc++如何屏蔽对话框中的ese键和enter键
VC 屏蔽和解除任意按钮,运行于VC6.0环境,引用了一个外部的Dll,MaskKey.dll的源码在MaskKey目录下,同样也可在VC 6.0下顺利编译成功。 // 屏蔽任意按键 void CTestMaskKeyDlg::OnButtonMaskKey() { ...
vc6.0调试程序后,程序不退出,将文件夹里面的内容放到vc6.0的安装目录下即可
VC程序VC程序VC程序VC程序VC程序VC程序VC程序
vc 程序崩溃的捕捉 vc 程序崩溃的捕捉 vc 程序崩溃的捕捉 vc 程序崩溃的捕捉
本程序为Visual C++来制作通用安装和卸载程序,使你拥有一个独具特色的通用安装和卸载程序。 安装程序处理包括: (1)将zip包应用程序文件解压到安装目录; (2)创建桌面和开始菜单快捷方式; (3)在注册表写入...
VC++如何使用ENTER键控制对话框中控件的输入焦点呢?这个小程序将为您解开其中的原由,希望VC初学者下载参考。
vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生程序序列号vc产生...
在win7下安装vc++6.0后,调试程序时,会出现程序无法退出的情况。甚至在windows的资源管理器强行退出也不行。只有将vc++6.0退出后,调试的应用程序才能退出。非常不方便。本插件很好的解决了这个问题
VC6.0编的计算器小程序,对于学习VC6.0的人来说是个不错的源码。
调试过程中点击终止调试图标,vc6可以退出调试状态,但是控制台程序并未关闭。该进程不能被结束,即使我使用任务管理器,也不可以。这时如果我再次调试,任务栏上会留下两个这样的图标,这两个进程都可以在任务管理器...
VC6.0在64位Windows7下调试的时候,直接结束调试时,程序无法退出,这个插件可以帮助在win764位调试时直接结束调试退出程序。
VC 划曲线程序 VC 划曲线程序 VC 划曲线程序
VC010游戏程序设计(五子棋VC)毕业设计VC010游戏程序设计(五子棋VC)毕业设计VC010游戏程序设计(五子棋VC)毕业设计VC010游戏程序设计(五子棋VC)毕业设计VC010游戏程序设计(五子棋VC)毕业设计VC010游戏程序设计(五子棋...
VC6在64位Windows7下调试,结束调试时,程序进程无法退出,即在任务栏看到窗口图标一直在,只能通过任务管理器关闭。附件中提供了解决方案和需要的文件。
VC6在64位Windows7下调试的时候,再结束调试,程序无法退出