MFC 如何使CTreeCtrl响应鼠标单击事件
是这样,我有一个CTreeCtrl控件,并希望它能响应鼠标单击事件,但是查看属性-事件,发现只有WM_CLICK,这是响应的“已经单击了左键”……这样的话,反应就不对应了...
是这样,我有一个CTreeCtrl控件,并希望它能响应鼠标单击事件,但是查看属性-事件,发现只有WM_CLICK,这是响应的“已经单击了左键”……这样的话,反应就不对应了……请问哪里能找到响应鼠标单击的事件呢?
说错了 不是WM_CLICK,是NM_CLICK…… 展开
说错了 不是WM_CLICK,是NM_CLICK…… 展开
2009-12-05
展开全部
看你是否真正想要响应“单击”消息,一次单击事件是由一次按下和一次弹起组成的。
我推测你是希望截获鼠标“左键按下”(WM_LBUTTONDOWN)消息来控制控件行为。
另外,可以用CTreeCtrl::HitTest()来捕拍衡羡获节点,多看看MSDN,上面讲的很清袭拍楚。
NM_CLICK (tree view) Notification
--------------------------------------------------------------------------------
Notifies a tree-view control's parent window that the user has clicked the left mouse button within the control. This notification is sent in the form of a WM_NOTIFY message.
Syntax
NM_CLICK
lpnmh = (LPNMHDR) lParam;
Parameters
lpnmh
Pointer to an NMHDR structure that contains additional information about this notification message.
Return Value
Return nonzero to prevent the default processing, or zero to allow the default processing.
(返回非零值以拦芦定制处理过程,也就是把pResult置为非零值;注意,禁用拖拽的树和没有禁用拖拽的树在响应鼠标左键按下消息时的默认处理过程是不同的,由于启用拖拽时需要进行额外处理)
我推测你是希望截获鼠标“左键按下”(WM_LBUTTONDOWN)消息来控制控件行为。
另外,可以用CTreeCtrl::HitTest()来捕拍衡羡获节点,多看看MSDN,上面讲的很清袭拍楚。
NM_CLICK (tree view) Notification
--------------------------------------------------------------------------------
Notifies a tree-view control's parent window that the user has clicked the left mouse button within the control. This notification is sent in the form of a WM_NOTIFY message.
Syntax
NM_CLICK
lpnmh = (LPNMHDR) lParam;
Parameters
lpnmh
Pointer to an NMHDR structure that contains additional information about this notification message.
Return Value
Return nonzero to prevent the default processing, or zero to allow the default processing.
(返回非零值以拦芦定制处理过程,也就是把pResult置为非零值;注意,禁用拖拽的树和没有禁用拖拽的树在响应鼠标左键按下消息时的默认处理过程是不同的,由于启用拖拽时需要进行额外处理)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询