VC屏蔽Enter和ESC退出程序的技巧
来源:互联网 发布:龙腾计价软件 编辑:程序博客网 时间:2024/04/30 15:34
重载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退出程序的技巧
- VC屏蔽Enter和ESC退出程序
- VC屏蔽Enter和ESC退出程序
- VC屏蔽Enter和ESC退出程序
- VC++ 屏蔽按ENTER或者ESC键退出程序
- VC屏蔽Enter和ESC
- MFC Dialog 屏蔽Enter和Esc按下时自动退出程序
- MFC对话框程序屏蔽ESC和ENTER键退出
- MFC对话框程序屏蔽ESC和ENTER键退出
- MFC 屏蔽ESC,Enter退出的问题
- VC 屏蔽ESC,ENTER
- VC 屏蔽 ENTER或者ESC键 退出事件
- VC 屏蔽 ENTER或者ESC键 退出事件
- VC里基于对话框的程序屏蔽回车键和ESC自动退出程序
- 防止对话框程序按Enter和ESC退出的对策
- 防止对话框程序按Enter和ESC退出的对策
- 防止对话框程序按Enter和ESC退出的对策
- 防止对话框程序按Enter和ESC退出的对策
- Struts2 get方法传递 中文 到Action乱码解决
- 基于RMAN的Oracle备份和恢复
- ajax xmlDocument & XMLHttpRequest
- 学习散记12之---SQL Server 恢复模式
- 使用rman做文件系统和raw设备之间的转换
- VC屏蔽Enter和ESC退出程序的技巧
- linux 命令之简写
- 程序员能力矩阵 你属于哪一层?
- Code30从旧表中赋值所有列到新表中创建一个新表
- Import SpreedSheet 从Excel中导入数据生成SharePoint List
- 思考
- 小小问题集锦6之---查询条件非常复杂时解决效率不高的一个办法
- ASP.Net生成静态HTML页!
- acegi流程分析之一《Acegi 中的HttpSessionEvent 监听机制 窥视Acegi的 工作流程》