首先我們來看下實例代碼:
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