MFC中没有消息处理怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中没有消息处理怎么办相关的知识,希望对你有一定的参考价值。
我新建一个对话框的工程,有一个消息WM_NCHITTEST吧,说是处理鼠标点击的消息,可是在class waizzard里面没有该消息啊,怎么办啊?
我自己添加的消息处理函数UINT OnNcHitTest(CPoint point)
可是在里面加了代码也没反应啊。
还有画图的时候屏幕闪烁,利用双缓冲也是,有人说要重载WM_ERASEBKGND,也是没有消息处理函数添加。
求达人告诉我该怎么添加消息响应函数
WM_ERASEBKGND也会出现的 参考技术A WM_LBUTTONDOWN
WM_RBUTTONDOWN
WM_lBUTTONUP
WM_RBUTTONUP
WM_LBUTTONDBLCLK
WM_RBUTTONDBLCLK
以上是常用鼠标消息,具体我想应该能看明白。
OnEraseBkgnd(
CDC* pDC
);重载这个虚函数,不是添加消息映射。因为mfc一些类已经把非常常用的一些消息做了映射,所以不用再映射,只需重载即可。
ps:在vs2008里,添加消息相应函数和重载函数是分开的,即操作是不同的。vs2005应该一样,vc6不详。 参考技术B 你先为你的某个按钮创建相应的处理类,然后单击列的右键,选在Add windows message handle,就OK了 参考技术C 添加消息处理函数
需要在消息映射声明那里 和 映射声明那写函数原型
也就是需要在
BEGIN_MESSAGE_MAP()
ON_WM_PAINT()
。。。
END_MESSAGE_MAP()
这里和类声明那里(相应的.h文件)
DECLARE_MESSAGE_MAP() 这个前面加 afx_msg UINT OnNcHitTest(CPoint point);
VS 2008 MFC - 删除 MFC 处理程序
【中文标题】VS 2008 MFC - 删除 MFC 处理程序【英文标题】:VS 2008 MFC - Remove MFC handler 【发布时间】:2010-04-14 23:20:42 【问题描述】:如何从 C++ 文件中删除像 ON_UPDATE_COMMAND_UI 这样的 MFC 命令处理程序? 我似乎无法通过 Dev Studio 找到方法。如果你知道怎么做,请解释一下。
我正在使用 VS 2008。
谢谢, 迈克
【问题讨论】:
【参考方案1】:要创建处理程序,您使用了属性窗格的“消息”列表中的下拉列表。当您没有处理程序时,该列表有一个类似<add> OnXxxUpdate
的条目。如果您已经有一个处理程序,下拉相同的列表将显示一个<delete> OnXxxUpdate
-- 单击它。这只是删除了消息映射中的条目——您必须手动删除函数体。
【讨论】:
澄清一下:您可以从类视图中执行此操作。 AFAIK 现在可以从资源视图中删除处理程序。 感谢 Jerry 和 Dani 的回答。我明白你的意思了。我希望你有一个美好的一天!!!以上是关于MFC中没有消息处理怎么办的主要内容,如果未能解决你的问题,请参考以下文章