继承CListCtrl,然后重载OnLButtonUP消息,发现变成双击才触发???

 

原文链接: http://bbs.csdn.net/topics/380052636

1楼

因为WM_LBUTTONDOWN事件和NM_CLICK事件是同时发生的,只是后者要等到用户释放鼠标后才算完成,也就是释放鼠标的时候才执行NM_CLICK事件.
WM_LBUTTONDOWN以后会产生NM_CLICK通知,如果有NM_CLICK通知,WM_LBUTTONUP就不会产生了,NM_CLICK是一个通知消息,它是由WM_LBUTTONDOWN产生的,是否产生WM_LBUTTONUP与NM_CLICK的返回值有关。

你可以在NM_CLICK消息响应中PostMessage发送一个WM_LBUTTONUP消息,或者在WM_LBUTTONDOWN消息响应函数中注释掉CListCtrl::OnLButtonDown();的调用

最好是用OnClick(NM_CLICK)事件替换OnLButtondown(WM_LBUTTONDOWN)和OnLbuttonup(WM_LBUTTONUP).

2楼

对的,CListCtrl类自带了鼠标的响应消息处理机制

3楼

继承CListCtrl类, 映射WM_LBUTTONDOWN,WM_LBUTTONUP这两个消息,注释掉CListCtrl::OnLButtonDown(nFlags, point);这个语句,就可以收到鼠标弹起的消息

 

posted @ 2015-07-02 16:58  huhu0013  阅读(711)  评论(0编辑  收藏  举报