PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码.  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占用率一般较高。
大多游戏都用PeekMessage();
使用:
        在谷歌地球中,由于谷歌地球无法使用鼠标滚动来控制视野的大小,在Dialog窗口中,将WM_MOUSEWHEEL截获转发到谷歌窗口中,成功的使谷歌窗口能使用鼠标滚动键来控制谷歌地球。

PreTranslateMessage使用相关推荐

  1. PreTranslateMessage作用和用法

    PreTranslateMessage作用和用法 PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗体的消息都要通过这里,比較经常使用,当 ...

  2. PreTranslateMessage作用和使用方法

    PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. ...

  3. 关于VC的dialog框PreTranslateMessage不响应现象及解决办法

    1.案例情况: 1)dialog动态生成按钮 CButton* pBtn = new CButton();// 定义按钮    CRect rcBtn(10,10,40, 30); //按钮显示位置长 ...

  4. (转)!注意:PreTranslateMessage弹出框出错

    dlg.DoModal()截住了界面消息,所以返回时原来的pMsg的内容已经更改了,消息,窗口句柄都不在是if以前的值了,而且窗口句柄应该是对话框里的子窗口的句柄,所以调用CFrameWnd::Pre ...

  5. Windows消息机制-PreTranslateMessage

    PreTranslateMessage作用和使用方法 Windows消息机制的流程: A. 操作系统接收应用程序的窗口消息,将消息投递到该应用程序的消息队列中 B. 应用程序在消息循环中调用GetMe ...

  6. MFC - PreTranslateMessage()响应自定义消息

    1 // 自定义消息 2 #define MY_THREAD_MSG WM_USER+1000 3 4 5 // 6 // PreTranslateMessage()如果要响应[自定义消息]必须用:: ...

  7. MFC PreTranslateMessage介绍

    PreTranslateMessage介绍 BOOL CMFCHelloDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM ...

  8. 如何使得OCX控件能响应PreTranslateMessage消息?

    1.首先在OCX的CPP文件中声明一个全局变量: static HHOOK hHook = NULL; 2.定义VHook处理函数: LRESULT CALLBACK GetMessageProc(i ...

  9. 使用PreTranslateMessage(MSG* pMsg)截获键盘数字键

    第一种:如果要截获大键盘数字键和小键盘数字键,采用如下方案: PreTranslateMessage(MSG* pMsg) { // TODO: 在此添加专用代码和/或调用基类 if (pMsg-&g ...

  10. MFC 中PreTranslateMessage(MSG* pMsg)截获按钮和编辑框的消息进行预处理

    在类向导自动为对话框添加PreTranslateMessage(MSG* pMsg)函数: BOOL CjilutestDlg::PreTranslateMessage(MSG* pMsg) {    ...

最新文章

  1. 人体姿态估计--Learning Feature Pyramids for Human Pose Estimation
  2. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
  3. java 类 clone_Java Clone(类的复制)实例代码
  4. linux kernel使用技巧
  5. VTK修炼之道59:图形基本操作进阶_纹理映射
  6. Buffered缓存流
  7. 特征工程之特征预处理
  8. 从零开始学_JavaScript_系列(22)——dojo(9)(表单、JsonRest的post方法,widget的使用思路)...
  9. ASP.NET 控件与可访问
  10. POST形式 soapUI调用WebService的restful接口,传入json参数,并且返回json
  11. 数字图像处理matlab 版下载,数字图像处理(MATLAB版)
  12. Android开发:申请小米开发者账号步骤
  13. 数学建模国赛-2015A太阳影子定位再研究(未完)
  14. MySQL 数值拼接字符串
  15. QuantLib 开源金融计量学工具箱下载
  16. linux ppm转jpg_python将.ppm格式图片转换成.jpg格式文件的方法
  17. SQL语句大全(Mysql)
  18. 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」必问之 排序 + 二叉树 部分!
  19. python办公自动化之word表格跨页断行-AllowBreakAcrossPages
  20. 关于计算机方面的一些数学书

热门文章

  1. 2018十大国产佳片
  2. Python 成为最受欢迎的语言靠实力吗?
  3. perl正则表达式匹配中文
  4. remosaic插值算法_图像插值算法及其实现
  5. 关于recvfrom接收超时
  6. faiss(2):理解product quantization算法
  7. Linux下干净卸载mysql详解
  8. ubuntu卸载mysql
  9. python大学生社团管理系统django548
  10. 自定义复选框checkbox样式