标题:vfp怎么获取当前鼠标的坐标
只看楼主
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:0 
貌似我做过这种外挂的东西
表单一个,TIMER控件一个,LABEL两个
在LOAD中写代码
PUBLIC GetCursorPos
Declare integer GetCursorPos IN win32api string
TIMER的interval 为500
在timer的TIMER事件中写代码

p1=repl(chr(0),8)
GetCursorPos(@p1)
dime num[8]
for i=1 to 8
trans(asc(substr(p1,i,1)),"@0")
num[i]=right(trans(asc(substr(p1,i,1)),"@0"),2)
endfor
x=val("0x"+num[4]+num[3]+num[2]+num[1])
y=val("0x"+num[8]+num[7]+num[6]+num[5])
thisform.label1.Caption=ALLTRIM(STR(X))
thisform.label2.Caption=allt(STR(y))
运行,移动鼠标,就明白了

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2021-10-26 16:58
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
得分:0 

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2021-10-26 17:00
风向2021
Rank: 1
来 自:河南信阳
等 级:新手上路
帖 子:5
专家分:0
注 册:2021-10-23
得分:0 
回复 10楼 foxfans
DECLARE LONG GetCursorPos IN WIN32API STRING @
LOCAL structPos, posX, posY
structPos = REPLICATE(CHR(0), 8)
IF GetCursorPos(@structPos)=1
    posX = CTOBIN(LEFT(structPos,4),"4RS")
    posY = CTOBIN(RIGHT(structPos,4),"4RS")
    ?posX,PosY
    ?INT((posX/1440)*65536),INT((PosY/900)*65536) &&这里就是相对于屏幕的当前坐标内部转换值,lParam
   
ENDIF
 稍改了一下,测试接近需要,感谢!
2021-10-27 11:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507285-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.183090 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved