此文来自http://topic.youkuaiyun.com/u/20090325/07/ab133e9f-de30-4ae0-a3d0-4c0238a651ff.html和http://topic.youkuaiyun.com/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 . HTvw<
Dim pt As POINTAPI
'TVM_GETITEMRECT消息的lparam参数是hitem,通过rc.left传进去,节点的坐标位置则通过rc返回
rc . Left = GetTVItemFromNode( trcX . HTvw , nodX)
Call SendMessage( trcX . HTvw<

本文介绍了如何使用API函数模拟鼠标点击,包括Mouse_Event方法和PostMessage方法。Mouse_Event适用于向TreeView控件发送节点点击事件,而PostMessage则用于触发TabStrip控件的点击事件。在PostMessage中,坐标转换和WM_LBUTTONDOWN消息的lParam参数是关键,需要注意缇和像素之间的转换。
最低0.47元/天 解锁文章
4754





