易语言取窗口坐标的方法实例

时间:2021-11-22 15:26:39

首先我们来看下实例代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.版本 2
.支持库 spec
 
.子程序 _窗口1_创建完毕
kk = API_SetWindowLong (标签1.取窗口句柄 (), -4, 到整数 (&Mycallback))
 
.子程序 Mycallback, 整数型
.参数 Hwnd
.参数 uMsg
.参数 消息参数WP
.参数 消息参数LP
.局部变量 msg, MSG
.局部变量 pt, POINTAPI
 
.如果真 (uMsg = 512) ' 移动消息
  API_GetMessage (msg, Hwnd, 0, 0)
  pt.横向位置 = msg.pt.横向位置
  pt.纵向位置 = msg.pt.纵向位置
  API_ScreenToClient (Hwnd, pt)
  调试输出 (到文本 (pt.纵向位置) + “/” + 到文本 (pt.横向位置))
.如果真结束
返回 (API_CallWindowProc (kk, Hwnd, uMsg, 消息参数WP, 消息参数LP))

用到api

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.版本 2
 
.DLL命令 API_GetMessage, 整数型, "user32", "GetMessageA", , 从线索消息队列中返回一条消息
  .参数 lpMsg, MSG
  .参数 hwnd, 整数型
  .参数 wMsgFilterMin, 整数型
  .参数 wMsgFilterMax, 整数型
 
.DLL命令 API_TranslateMessage, 整数型, "user32", "TranslateMessage", , 转换虚拟关键字消息
  .参数 lpMsg, MSG
 
.DLL命令 API_DispatchMessage, 整数型, "user32", "DispatchMessageA", , 向窗口发送消息
  .参数 lpMsg, MSG
 
.DLL命令 API_SetWindowLong, 整数型, "user32", "SetWindowLongA", , 在窗口结构中为指定的窗口设置信息 指定数据的前一个值
  .参数 hwnd, 整数型
  .参数 nIndex, 整数型
  .参数 dwNewLong, 整数型
 
.DLL命令 API_CallWindowProc, 整数型, "user32", "CallWindowProcA", , 将消息传答窗口函数
  .参数 lpPrevWndFunc, 整数型
  .参数 hwnd, 整数型
  .参数 msg, 整数型
  .参数 wParam, 整数型
  .参数 lParam, 整数型
 
.DLL命令 API_ScreenToClient, 整数型, "user32", "ScreenToClient", , 判断屏幕上一个指定点的客户区坐标 非零表示成功,零表示失败
  .参数 hwnd, 整数型, , 一个窗口的句柄,该窗口定义了要使用的客户区坐标系统
  .参数 lpPoint, POINTAPI, , POINTAPI,屏幕坐标系统中包含了屏幕点的结构。这个函数会随同相应的客户区坐标(由hwnd决定)载入结构;

用到数据类型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
.版本 2
 
.数据类型 POINTAPI, , 坐标;
  .成员 横向位置, 整数型
  .成员 纵向位置, 整数型
 
.数据类型 MSG
  .成员 hwnd, 整数型
  .成员 message, 整数型
  .成员 wParam, 整数型
  .成员 lParam, 整数型
  .成员 time, 整数型
  .成员 pt, POINTAPI

以上就是给大家介绍的关于易语言获取窗口坐标的实际方法,感谢大家对服务器之家的支持。

原文链接:https://www.cnblogs.com/qq32175822/p/3327740.html