为什么需要使用PreTranslateMessage()?在什么情况下使用??

jalang 2004-12-08 10:55:39
为什么需要使用PreTranslateMessage()?在什么情况下使用??非常希望举例说明一下!!
MFC控件里的PreTranslateMessage()?是不是包含了TranslateMessage and DispatchMessage ??
...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jalang 2004-12-13
  • 打赏
  • 举报
回复
问问题!up
jalang 2004-12-10
  • 打赏
  • 举报
回复
是所有的发给窗口的消息.还是只是键盘发给窗口的消息?!因为我们知道.在SDK中.是由一个while循环来截取消息的..那么pritranslatemessage()是不是就是类似于在循环里TranslateMessage and DispatchMessage两个函数之前你可以加的函数..来截取并处理并由返回值来决定抛弃或分派消息..在SDK里怎么样来抛弃消息呢??是不是加个if语句来判断一下??但是如果没有TranslateMessage的话..怎么样来把键盘的输入转换成虚拟键的输入呢??
aoosang 2004-12-09
  • 打赏
  • 举报
回复
就是所有发给窗口的消息都可以在这个函数里截获,这样,如果有些消息你不想处理,可以在这里屏蔽掉,例子参见楼上的
张佩 2004-12-09
  • 打赏
  • 举报
回复
关于pritranslatemessage的返回值:
Nonzero if the message was translated and should not be dispatched; 0 if the message was not translated and should be dispatched.
非0,不被分派;0:被分派。

张佩 2004-12-09
  • 打赏
  • 举报
回复
比如,我由一个程序,是一个对话框,因为对话框默认的空格键是将调用onok函数,将窗口关掉的,我想去掉这个功能,于是在pritranslatemessage里面加了下面代码:
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
return TRUE;
这样,就行了。
张佩 2004-12-09
  • 打赏
  • 举报
回复
一般时用来转换键盘输入的。譬如,你安了一个“空格键”,而系统对空格键有默认处理,而你想将这个默认处理屏蔽掉的话,就要在这里弄了。它时在TranslateMessage被调用之前,由系统自动调用的。
flinming 2004-12-09
  • 打赏
  • 举报
回复
这个是窗体消息转换的问题
你在界面操作,都是用这个来消息转换
如果你要拦截某个消息,在这里操作是比较方便的。。。。。。。
jalang 2004-12-09
  • 打赏
  • 举报
回复
up..

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧