MFC中没有消息处理怎么办

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:39:46
我新建一个对话框的工程,有一个消息WM_NCHITTEST吧,说是处理鼠标点击的消息,可是在class waizzard里面没有该消息啊,怎么办啊?
我自己添加的消息处理函数UINT OnNcHitTest(CPoint point)
可是在里面加了代码也没反应啊。
还有画图的时候屏幕闪烁,利用双缓冲也是,有人说要重载WM_ERASEBKGND,也是没有消息处理函数添加。
求达人告诉我该怎么添加消息响应函数

需要在类视图里右键点击需要添加消息响应的类选择弹出菜单中的“Add Windows Message Handler...”选项然后在弹出的窗口右下角设置“Filter for messages available to ”为“Window”才能看到WM_NCHITTEST,这时
WM_ERASEBKGND也会出现的

WM_LBUTTONDOWN
WM_RBUTTONDOWN
WM_lBUTTONUP
WM_RBUTTONUP
WM_LBUTTONDBLCLK
WM_RBUTTONDBLCLK

以上是常用鼠标消息,具体我想应该能看明白。

OnEraseBkgnd(
CDC* pDC
);重载这个虚函数,不是添加消息映射。因为mfc一些类已经把非常常用的一些消息做了映射,所以不用再映射,只需重载即可。

ps:在vs2008里,添加消息相应函数和重载函数是分开的,即操作是不同的。vs2005应该一样,vc6不详。

你先为你的某个按钮创建相应的处理类,然后单击列的右键,选在Add windows message handle,就OK了

添加消息处理函数
需要在消息映射声明那里 和 映射声明那写函数原型
也就是需要在
BEGIN_MESSAGE_MAP()
ON_WM_PAINT()
。。。
END_MESSAGE_MAP()
这里和类声明那里(相应的.h文件)
DECLARE_MESSAGE_MAP() 这个前面加 afx_msg UINT OnNcHitTest(CPoint point);