MFC重载PreTranslate函数截取消息

如果我们想对系统消息队列中的某个消息自定义其行为,可以选择某个对话框,添加PreTranslateMessage函数并重写;
需要注意的点:
(1) 只有消息队列中的消息会被PreTranslateMessage所截获,如果是用SendMessage直接向某个对话框发送的消息不会被截获;
(2) PreTranslateMessage截获消息之后,当它释放此消息之后,这个消息才能到消息队列中去执行相应的映射函数,例子如下:
在这里插入图片描述

截获某个系统消息并改成别的消息:
在这里插入图片描述

(3) 如果用PreTranslateMessage截获某个消息,并且不想把消息还给系统,可以在执行完相应操作后直接return TRUE/FALSE,就是提前结束函数,不让操作系统去执行消息函数:
在这里插入图片描述

发布了6 篇原创文章 · 获赞 0 · 访问量 368

猜你喜欢

转载自blog.csdn.net/qq_42516974/article/details/104751407
今日推荐