mouse_event只能向当前鼠标所在的地方发送事件,可不可以向一个指定的座标发送而又不影响当前鼠标的运行呢?就像向一个句柄发送消息一样
解决方案 »
- 请教VSflexgrid绑定数据源的怎么固定前边2两列在横向移动滚动条时固定显示?
- 一张小图片按照大图片画出的路径移动
- 关于“对象关闭时,不允许操作”的问题,请高人指条明路!谢谢
- DELL机器插有三块MODEM卡,一个COM3,一个COM4,一个COM5,现在启动三个应用程序分别处理三个串口,拨号一次处理正常,第二次拨号就没有反
- 问一个关于弹出chm帮助文档的问题,很简单
- 有两个form,先运行form1_load(),怎样一开始就运行form2?
- 专家分少于500的兄弟来接分了!
- mdi窗口是干什么的?
- 高分求图书销售系统的源码
- 关于ADODC的另一个问题
- Data Report问题。急,在线等待!!
- 鼠标点击listview空白处的时候。任何 item 都没有焦点。
我看mouse_event好像支持绝对位置,但我不清楚它的参数,dx和dw指的是(800,600)还是(60000,60000)
Option ExplicitPrivate Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_MBUTTONDBLCLK = &H209
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _
ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
lParam As Any) As LongPrivate Const GWL_WNDPROC = (-4)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function WindowFromPoint Lib "user32" ( _
ByVal xPoint As Long, _
ByVal yPoint As Long) As LongPrivate Sub cmdSend_Click()
Dim lpPoint As POINTAPI
Dim lpProc As Long
Dim hMyWnd As Long
lpPoint.x = 100 ' X 座标
lpPoint.y = 100 ' Y 座标
' 获取指定位置所持句柄
hMyWnd = WindowFromPoint(lpPoint.x, lpPoint.y)
' 获取窗体默认消息处理函数地址
lpProc = GetWindowLong(hMyWnd, GWL_WNDPROC)
' 下面的按键事件可以任意组合
' 发送左键按下事件
CallWindowProc lpProc, hMyWnd, WM_LBUTTONDOWN, 0, lpPoint
' 发送左键松开事件
CallWindowProc lpProc, hMyWnd, WM_LBUTTONUP, 0, lpPoint
' 发送左键双击事件
CallWindowProc lpProc, hMyWnd, WM_LBUTTONDBLCLK, 0, lpPoint
' 发送中键按下事件
CallWindowProc lpProc, hMyWnd, WM_MBUTTONDOWN, 0, lpPoint
' 发送中键松开事件
CallWindowProc lpProc, hMyWnd, WM_MBUTTONUP, 0, lpPoint
' 发送中键双击事件
CallWindowProc lpProc, hMyWnd, WM_MBUTTONDBLCLK, 0, lpPoint
' 发送右键按下事件
CallWindowProc lpProc, hMyWnd, WM_RBUTTONDOWN, 0, lpPoint
' 发送右键松开事件
CallWindowProc lpProc, hMyWnd, WM_RBUTTONUP, 0, lpPoint
' 发送右键双击事件
CallWindowProc lpProc, hMyWnd, WM_RBUTTONDBLCLK, 0, lpPoint
End Sub