请问动态添加的Listctrl控件如何响应WM_LBUTTONDOWN消息???

hgw111 2002-05-08 04:32:11
我在一个派生于CView类的视类中动态添加了Listctrl控件,然后手工添加消息映射,希望该控件响应WM_LBUTTONDOWN消息:
先在头文件中声明,然后在cpp文件中添加如下代码:
BEGIN_MESSAGE_MAP(CMemoryView, CView)
//{{AFX_MSG_MAP(CMemoryView)
//}}AFX_MSG_MAP
ON_NOTIFY(WM_LBUTTONDOWN,ID_LISTCTRL,OnLButtonDown)
END_MESSAGE_MAP()
编译运行,结果该控件不响应WM_LBUTTONDOWN消息,怪了,请问为什么?
...全文
212 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
goodboyws 2002-05-09
那是用ON_WM_LBUTTONDOWN, 不是用ON_NOTIFY,ON_NOTIFY宏的第一个参数绝不可能是WM_LBUTTONDOWN,WM_LBUTTONDOWN和WM_NOTIFY一样是消息类,NM_CLICK可以看成是消息函数的一个参数.WM_NOTIFY是子窗口对父窗口的通知,WM_LBUTTONDOWN则是系统对窗口本身的消息,所以你不可能在对话框里映射控件的WM_LBUTTONDOWN消息,如果你一定要处理listctrl的M_LBUTTONDOWN可以在PreTranslateMessage中处理,或者用CListCtrl的派生类.

你最好看一下MSDN里关于ON_NOTIFY的说明
回复
hgw111 2002-05-09
goodboyws(深夜不眠者):
我觉得你错了,如果你从ListCtrl派生一个类,可以映射WM_LBUTTONDOWN
jiangsheng(蒋晟卧病中) :
我看看
另:病了?保重身体
回复
蒋晟 2002-05-08
PRB: Messages Not Received by Dynamically Created Control

Q156051
回复
goodboyws 2002-05-08
哈,那神仙也帮不了你,WM_LBUTTONDOWN是一种消息,NM_CLICK是WM_NOTIFY的lParam转化成LPNMHDR后的code成员变量的值
回复
hgw111 2002-05-08
goodboyws(深夜不眠者) :
我是要WM_LBUTTONDOWN消息,而不是NM_CLICK
回复
lshadow 2002-05-08
改成NM_CLICK我已经说了啊,可是 hgw111 (hg)说不行
回复
lshadow 2002-05-08
那我就不会了,没有试过listctrl的,只动态添过button的
表示关注!,帮你up!
回复
goodboyws 2002-05-08
ON_NOTIFY(WM_LBUTTONDOWN,ID_LISTCTRL,OnLButtonDown)
改为
ON_NOTIFY(NM_CLICK,ID_LISTCTRL,OnLButtonDown)
注意ON_NOTIFY消息的函数类型应该是
void OnLButtonDown(NMHDR* pNMHDR, LRESULT* pResult);
否则在win98下会报错
回复
lshadow 2002-05-08
那我就不会了,没有试过listctrl的,只动态添过button的
表示关注!,帮你up!
回复
hgw111 2002-05-08
lshadow(光影) :
define了,自己添加的代码加到中间去是没什么,但放在外面是一种良好的编程习惯
xiaobei525(好久没吃海鲜了,老板,上一盘海带!):
我是动态添加Listctrl控件,消息映射宏不一样
回复
xiaobei525 2002-05-08
你可以先在对话矿上搞一个控件,然后用Class Wizard生成消息影射,然后知道怎么做了吧!!!照着美女画野兽。
回复
lshadow 2002-05-08
你define了那个ID吗?而且我个人觉得即使把自己添加的代码加到中间去也没什么,你可以试试。
BEGIN_MESSAGE_MAP(CMemoryView, CView)
//{{AFX_MSG_MAP(CMemoryView)
ON_NOTIFY(NM_CLICK,ID_LISTCTRL,OnLButtonDown)
//}}AFX_MSG_MAP
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-08 04:32
社区公告

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