此文来自http://topic.csdn.net/u/20090325/07/ab133e9f-de30-4ae0-a3d0-4c0238a651ff.html和http://topic.csdn.net/u/20090325/07/dcb048a0-c0ee-481f-b0ec-29e4e31e8acc.html这两个帖子的讨论,感谢Tiger_Zhao,goosen,myjian的指点。
鼠标消息是队列消息,好像因为这个原因,所以得以投递的方式来发送消息,而用sendmessage貌似就不灵。我知道两种投递鼠标消息的办法,一种是用PostMessage,一种是用Mouse_Event。分述如下:
一、Mouse_Event方法
假设我们希望发送鼠标消息到TreeView控件的节点上使它的NodeClick事件发生,可以用如下代码:
Dim
rc
As
RECT
Dim pt As POINTAPI
'TVM_GETITEMRECT消息的lparam参数是hitem,通过rc.left传进去,节点的坐标位置则通过rc返回
rc . Left = GetTVItemFromNode( trcX . HTvw , nodX)
Call SendMessage( trcX
Dim pt As POINTAPI
'TVM_GETITEMRECT消息的lparam参数是hitem,通过rc.left传进去,节点的坐标位置则通过rc返回
rc . Left = GetTVItemFromNode( trcX . HTvw , nodX)
Call SendMessage( trcX