
· 后台y坐标=客户区前台y坐标-客户区左上角前台y坐标 5/11 如何获得客户区前台的x,y坐标呢? 我们使用按键精灵自带的窗体插件命令:GetWindowRect来获取。 命令名称: GetWindowRect 窗口边框大小 命令功能: 得到窗口句柄的边框大小 (包括标题栏) 命令参数:
//得到鼠标指向的窗口句柄
Hwnd
=
PluginWindowMousePoint()
//得到窗口句柄的客户区大小
Rect
=
PluginWindowGetClientRect(Hwnd)
Dim
MyArray
MyArray=Split(Rect,"|")
Ux
=
CLng(MyArray(0))
Uy
=
Clng(MyArray(1))
接着就是后台的命令了
记住Ux
Uy
都是游戏窗口起始点的坐标
你在截取屏幕时获得的屏幕坐标
再加上窗口起始点坐标就是窗口里的坐标了
例如:
x+Ux,y+Uy
这就是窗口里的坐标
谢谢
如有问题请加Q
加备注
谢谢
MM_ANISOTROPIC:逻辑单位转换成具有任意比例轴的任意单位,用SetWindowExt和SetViewportExt函数可指定单位、方向和比例。
SetWindowExt和SetViewportExt函数可指定单位、方向和比例。这两个函数才决定了你的坐标和方向。你改改这两个函数的参数试试。
首先,客户区指的就是窗口中可进行绘图的一个方格,照楼主的意思把未显示内容也算在内,这说的是整个设备坐标系,对于设备坐标系是没有大小可言的,它可以认为是一个两条互相垂直的直线所在的平面,它是无限大的。而无论滚动条怎么滚动,设备坐标的0,0点总是位于客户区的左上角。这其中的原理还牵涉到逻辑坐标。详情见>
你的类是继承自CScrollView类对吧?那你在OnLButtonDown()函数中最开始加入如下代码:
CClientDC dc(this);
OnPrepareDC(&dc);
dcDPtoLP(&point);
接下来,point中的坐标应该就符合你的意愿了!
CWnd::GetClientRect
void GetClientRect(
LPRECT lpRect )
const;
此函数用来获取对话框客户区大小。按你的代码,通过rcWidth()和rcHeight()就可以获得客户区的宽度和高度。
示例:绘制一条正弦曲线
void CMainWindow::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
int nWidth = rectWidth();
int nHeight = rectHeight();
CPoint aPoint[SEGMENT];
for (int i=0; i<SEGMENT; i++)
{
aPoint[i]x = (i nWidth) / SEGMENT;
aPoint[i]y = (int) ((nHeight / 2) (1 - (sin((2PIi)/SEGMENT))));
}
dcPolyline(aPoint,SEGMENT);
}
1、在Windows中,句柄是一个系统内部数据结构的引用。例如当你 *** 作一个窗口,或说是一个Delphi窗体时,系统会给你一个该窗口的句柄,系统会通知你:你正在 *** 作142号窗口,就此你的应用程序就能要求系统对142号窗口进行 *** 作——移动窗口、改变窗口大小、把窗口极小化为图标等。
2、获取窗口左上角坐标之前需知道该窗口的窗口句柄,因为你得确定针对哪个窗口获取左上角坐标。获取窗口句柄的方法很多。在全部命令→插件命令→window窗口插件里都有介绍。
3、知道了这个窗口的句柄,就能获取它的左上角坐标,下面是代码:
Rect
=
PluginWindowGetWindowRect(Hwnd)
MyArray
=
Split(Rect,
"|")
x
=
Clng(MyArray(0))
y
=
Clng(MyArray(1))//这里的(x,y)是窗口包含边框的左上角坐标,可用后台 *** 作
Rect
=
PluginWindowGetClientRect(Hwnd)
MyArray
=
Split(Rect,
"|")
x
=
Clng(MyArray(0))
y
=
Clng(MyArray(1))//这里的(x,y)是窗口不含边框(称为客户区)的左上角坐标
现获取左上角坐标
dim
hwnd
hwnd
=
pluginwindowmousepoint()
//下面这句是得到窗口句柄的客户区大小
srect
=
pluginwindowgetclientrect(hwnd)
//下面这句用于分割字符串,将横坐标和纵坐标分成两个字符串
dim
myarray
myarray
=
split(srect,
"|")
//下面这句将字符串转换成数值
l
=
clng(myarray(0)):
t
=
clng(myarray(1))
r
=
clng(myarray(2)):
b
=
clng(myarray(3))
plugin
color
=
bkgndcolorgetpixelcolor(hwnd,
l+屏幕到点之间的x距离差,
t+y差)
反正你用后台也能实现
以上就是关于按键精灵求XY坐标全部的内容,包括:按键精灵求XY坐标、按键精灵9怎么获取游戏窗口的后台坐标。高手解答下、windows程序设计中,此时客户区坐标原点在哪里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)