高难度问题!

anstern 2000-07-14 04:05:00
在我的程序中,想做一功能,即只要鼠标移到已打开的IE框里面,就会触发一事件。但关键这IE不是我编的,而且也不是我程序中的一部分,所以不知道如何编此事件,是不是需要通过API某函数来捕获消息,进而判断呢?
请大虾赐教!最好把相关程序贴出来。
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
songs 2000-07-20
  • 打赏
  • 举报
回复
获取别的程序的MouseUp事件应采取变通的方法——拖放,即在本窗口中按下鼠标,然后在其他窗口里释放。
anstern 2000-07-18
  • 打赏
  • 举报
回复
很感谢你的回答,但如果程序用GetCursorPos获取屏幕坐标后,再用WindowFromPoint更好.
By the way,我还想问一下,如何获取别的程序的MouseUp事件?
songs 2000-07-16
  • 打赏
  • 举报
回复
我可以提供一个思路和相关的API函数:
Public Declare Sub ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) '功能为将显示器上某个点或矩形的客户机坐标转换为屏幕坐标;
Public Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long '功能为取得包含指定点的窗口句柄;
Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long ’功能为取得指定窗口的标题栏,可据此判断是否为IE窗口(可能还有其他方法);
实现方法为:
1.将MouseMove事件返回的x,y值传递给ClientToScreen子程序,转换为WindowFromPoint 能接受的屏幕坐标;
2.由WindowFromPoint获得窗口句柄;
3.由GetWindowText取得窗口标题栏,判断是否为IE,如是则触发你所需的事件;
注:在程序中将IE的窗口句柄保存下来,以后只需要根据WindowFromPoint返回的句柄就可以判断是否为IE了。
但愿能对你有所帮助。

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧