| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 528 人关注过本帖
标题:如何让 wait windows 命令 在鼠标的下方显示
只看楼主 加入收藏
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:294
专家分:632
注 册:2021-11-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
如何让 wait windows 命令 在鼠标的下方显示
感觉有点难啊,是不是要先获取鼠标位置,然后根据这个位置 设置 wait window 的位置?
代码不会写。
搜索更多相关主题的帖子: 显示 位置 鼠标 命令 wait 
2023-07-11 23:30
shizi0
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:128
专家分:402
注 册:2012-10-2
收藏
得分:20 
Declare SHORT GetCursorPos In user32 String @
POINTAPI=Replicate(Chr(0),8)
GetCursorPos(@POINTAPI)
xPos=CToBin(Substr(POINTAPI,1,4),'4rs')
YPos=CToBin(Substr(POINTAPI,5,4),'4rs')

oForm=Iif(Type([_vfp.ActiveForm])=[O],_vfp.ActiveForm,_Screen)
yRate=oForm.Height/Wrows()
xRate=oForm.Width/Wcols()

Wait Window "("+Transform(xPos)+","+Transform(yPos)+")这里显示" At yPos/yRate,xPos/xRate
2023-07-12 00:35
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10606
专家分:43182
注 册:2014-5-20
收藏
得分:0 
WAIT WINDOW AT MROW(),MCOL()
2023-07-12 06:36
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:294
专家分:632
注 册:2021-11-24
收藏
得分:0 
感谢 :shizi0
代码有效。

吹版, AT MROW(),MCOL() 在编译的EXE里,不行,位置不对。
2023-07-12 08:20
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:294
专家分:632
注 册:2021-11-24
收藏
得分:0 
另外,发现很多WinAPI 都会用到 类似: CToBin() 这样的函数 和参数: 4rs
 由于不懂C++,所以这些 很难理解,吹版 能做些例子 讲解一下吗
2023-07-12 08:22
easyppt
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:294
专家分:632
注 册:2021-11-24
收藏
得分:0 
个人理解,如错误还请指教!查看帮助文档, GetCursorPos 返回的是 鼠标位置的 结构体。
这个结构体 不是很懂,但从  shizi0  给出的代码判断: 这个结构体是 8位宽度,那就是分别 4位 代表 X坐标 和  Y坐标
返回的结构体是 二进制,需要转换,所以用了 CToBin() 函数,分别取出 X坐标 和 Y坐标

问题:这个结构体 概念很模糊,所以无法举一反三,比如类似的其他API 可能就不知道怎么理解了。
2023-07-12 08:55
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:786
专家分:1160
注 册:2021-10-13
收藏
得分:0 
回复 6楼 easyppt
GetCursorPos 返回光标所在位置,以屏幕为参照系。
点的位置由x,y组成
但是该函数返回的是一个point结构,由pointx四个字节和pointy四个字节组成,注意大小端,也就是说是高位在后低位在前。

你可能会说,为什么要用字节来表示数字,直接返回数字不就行了吗,那时因为用字节来表示数据,有更大的容量。比如说255这个数字,直接用数字来储存要3个字节,而用字节来储存,只需要一个字节0xff(chr(255));数字越大,优势越大,比如数字4294967265,10个字节,用字节表示只有0xffffffff(chr(255)+chr(255)+chr(255)+chr(255))四个字节。

回到刚才的话题,假设上面这个函数执行成功后返回一个字符串,chr(125)+chr(0)+chr(0)+chr(0)+chr(255)+chr(0)+chr(0)+chr(0),这样你就知道这个点的位置是(125,255)。

ctobin()和bintoc()就是将字符和数字进行格式化转换的函数。

不同的结构有不同的定义,蕴含不同的数据结构。

[此贴子已经被作者于2023-7-13 12:54编辑过]

2023-07-13 12:52
快速回复:如何让 wait windows 命令 在鼠标的下方显示
数据加载中...
 
   



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

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