在vba里面没法添加timer控件,所以GetCursorPos貌似没法用,还有我试过mousemove,结果只能获得窗体的坐标,那如何获得屏幕的坐标呀,我的编程环境是coreldraw vba
5条回答 默认 最新
- danielinbiti 2015-05-16 14:14关注
用API实现定时器
增加一个module 增加代码 Option Explicit Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINTAPI) As Long Public Type POINTAPI x As Long y As Long End Type Public p As POINTAPI Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long) GetCursorPos p UserForm1.setXY p End Sub 增加一个Form,这里名字是userform1 代码如下 Option Explicit Public Sub setXY(p As POINTAPI) text_x.Text = CStr(p.x) text_y.Text = CStr(p.y) End Sub Private Sub UserForm_Initialize() Call SetTimer(0, 0, 10, AddressOf TimerProc) End Sub
解决 2无用