易语言取窗口坐标

.版本 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

.版本 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决定)载入结构;

用到数据类型

.版本 2

.数据类型 POINTAPI, , 坐标;
    .成员 横向位置, 整数型
    .成员 纵向位置, 整数型

.数据类型 MSG
    .成员 hwnd, 整数型
    .成员 message, 整数型
    .成员 wParam, 整数型
    .成员 lParam, 整数型
    .成员 time, 整数型
    .成员 pt, POINTAPI

 

posted on 2013-09-18 00:43  shellcode  阅读(1844)  评论(0编辑  收藏  举报

导航