aardio 文档

win 库模块帮助文档

win 成员列表 #

win._form #

常量对象,可用于替换表示原始 win.form 对象,
并禁止用户修改其定义.

win._parseMessage(MSG结构体) #

处理消息函数原始版本,慎用

win.autoQuitMessage #

如果显式指定此属性值为 false ,
则禁止当前线程在关闭最后一个非模态、非 MessageOnly 的独立窗口( 或 mainForm 窗口 )
时自动调用 win.quitMessage 函数退出消息循环。

win.center(窗口句柄,目标窗口句柄) #

居中窗口,并调整以保证显示在可见范围内
目标窗口句柄如果为空则取父窗口或所有者窗口,为0表示桌面

win.clearTimeout(定时器ID) #

删除定时器
参数如果为null则忽略不执行
否则定时器ID必须是setTimeout函数的返回值

win.close(输入窗口句柄) #

关闭窗口
关闭外部进程窗口请使用winex.close()替代

win.delay() #

在界面线程中延时并同时处理窗口消息,
如果程序退出返回null,否则返回true,

第一个可选参数指定延时值(毫秒),
即使无参数或参数为0,此函数仍然会至少执行一次消息检查),
该参数如果为0则忽略第二个参数(此时处理速度最快),默认值为0,

第二个可选参数指定插入的休眠时间(毫秒),
休眠时间越小则处理速度越快,休眠时间越大则占用CPU就越少

如果不需要消息循环时(例如控制台程序),建议使用sleep函数延时,

如果用于耗时循环中响应用户操作,
建议使用速度更快的win.peekPumpMessage 或 win.peekPumpInputMessage

win.eachChild(父窗口句柄,窗口类名) #

for hwnd in win.eachChild(/*按Z序遍历所有子窗口,  
省略父窗口句柄遍历桌面顶层窗口,  
窗口类名是可选参数,支持模式匹配语法  

此函数忽略UWP应用窗口,  
如果需要包含 UWP 窗口请改用 winex.eachFindEx 函数*/) {

}

win.enable(输入窗口句柄,false) #

禁用窗口

win.enable(输入窗口句柄,true) #

启用窗口

win.enum(callback) #

win.enum(  
    function(hwnd){  
        return true; /*枚举所有桌面顶层窗口,并回调此函数,  
忽略UWP窗口,如果需要包含UWP窗口请改用 winex.enum 函数*/  
    }  
)

win.find(类名,标题) #

查找顶层窗口,参数都是可选参数

win.findEx(父窗口句柄,上一个窗口句柄,类名,标题) #

查找子窗口
除父窗口句柄以外,其他参数都是可选参数,
类名和标题不支持模式匹配,
如果需要支持模式匹配,请改用 winex.findEx 或 winex.findEx2

win.flash(句柄,次数,时间间隔,选项) #

闪烁窗口

win.getActive() #

获取当前线程激活窗口句柄,如果要获取全局激活窗口请使用win.getForeground()

win.getAncestor #

获取上层父窗口

win.getAncestor(hwnd, _GA_PARENT ) #

返回父窗口,
与getParent函数相比主要有三个区别
1、不会返回所有者窗口
2、不考虑窗口样式是不是有WS_CHILD
3、顶层窗口返回桌面窗口句柄而不是0

win.getAncestor(hwnd, _GA_ROOT ) #

返回最上层父窗口,不包含桌面窗口
此函数与getRoot函数返回值相同

win.getChild(输入窗口句柄) #

获取子窗口句柄

win.getClass(输入窗口句柄) #

获取窗口类名

win.getClassLong( hwnd,_GCL ) #

返回窗体WNDCLASSEX结构的32位值

win.getClassPointer( hwnd,_GCL ) #

返回窗体WNDCLASSEX结构的句柄值

win.getClientPos(输入窗口句柄) #

返回客户区相对窗口的坐标 x,y,宽,高

win.getClientRect() #

返回对象:rectObject

win.getClientRect(输入窗口句柄) #

获取窗口客户区的坐标位置矩形区块,不包括边框。
返回值为 ::RECT 结构体

win.getCopyData(lParam) #

获取 _WM_COPYDATA 消息发送的数据
lParam 为窗口消息回调 wndproc 函数的回调参数

此函数有2个返回值,分别为接收到的字符串值、表示数据类型的数值

win.getCursorPos() #

返回当前鼠标所在位置的x,y坐标,
返回值有两个

win.getDesktop() #

获取桌面句柄

win.getDropFile(wParam) #

用于消息回调函数中获取拖放文件列表

以管理权限启动的进程操作系统会禁止拖放操作,
标准库提供了 process.admin.enableDropMsg 函数可以设置这个权限,
但现在这个设置有可能也是不被允许的

win.getFocus() #

获取输入焦点所在窗口句柄

win.getForeground() #

获取前台窗口句柄

win.getFullscreen() #

返回当前全屏窗口

win.getId(输入窗口句柄) #

获取控件ID

win.getIdleTime() #

获取用户未进行任何操作的空闲时间
单位毫秒,1000 毫秒为 1秒

win.getLeaf(输入窗口句柄) #

窗口的最梢节子窗口(没有子窗口的控件窗口)

win.getMessage(msg,窗口句柄,最小消息,最大消息,选项) #

检查并获取窗口消息,
msg参数可以是MSG结构体,也可以是一个空表用于接收新的MSG结构体,也可以省略
成功返回已填充消息的MSG结构体(如果指定了msg参数则该参数就是此返回值),
无消息返回false,程序退出返回null

所有参数都是可选参数
选项不指定则默认为 _PM_REMOVE 表示自消息队列移除该消息
其他选项请参考同名WINAPI的说明

win.getMessagePos() #

返回鼠标所在屏幕坐标,
表示上一次获取的窗口消息时鼠标占用的点

win.getMessagePos(lParam) #

返回鼠标所在窗口坐标,
lParam必须是窗口回调函数中的lParam参数

win.getMonitorInfo #

获取窗口所在显示器信息
sys.monitor 提供更多与显示器有关的函数

win.getMonitorInfo() #

返回对象:MONITORINFOObject

win.getMonitorInfo(坐标,选项) #

获取指定坐标所在的显示器信息
参数@1可指定 ::POINT 结构体,或包含 x,y 成员的表,\选项默认为 _MONITOR_DEFAULTTONEAREST,即获取最靠近的显示器

win.getMonitorInfo(窗口句柄,选项) #

获取窗口所在显示器信息,所有参数可选,\选项默认为 _MONITOR_DEFAULTTONEAREST,即获取最靠近的显示器

win.getOwner(输入窗口句柄) #

获取所有者窗口句柄
注意子窗口没有所有者窗口

下属窗口总是显示在所有者窗口前面
例如模态对话框通常会指定一个所有者窗口

win.getParent(输入窗口句柄) #

返回父窗口
父窗口为桌面且自身不是具有WS_CHELD样式的子窗口返回0
该函数返回值为0表示窗口是一个顶层独立窗口[TopLevelWindow]
注意WINAPI中的GetParent函数在aardio中被命名为win.getParentOwner

win.getParentOwner(输入窗口句柄) #

拥有WS_CHILD样式的子窗口返回其父窗口
拥有WS_POPUP样式的弹出对话框返回无WS_POPUP样式所有者窗口
三种情况下该函数失败返回0
1、如果有父窗口但是自身没有WS_CHILD样式返回0,
2、有所有者窗口但自身没有WS_POPUP样式也返回0
3、所有者窗口具有WS_POPUP也返回0
此函数为WINAPI中的GetParent函数,原名字有误导性在aardio中已改名

win.getPlacement() #

返回对象:WINDOWPLACEMENTObject

win.getPlacement(输入窗口句柄) #

可省略参数
返回WINDOWPLACEMENT结构体
包含窗口最大化、最小化、还原状态的位置信息

win.getPos(输入窗口句柄) #

返回相对坐标 x,y,宽,高

win.getPos(输入窗口句柄,true) #

返回屏幕坐标 x,y,宽,高

win.getRect(输入窗口句柄) #

返回窗体相对坐标位置矩形区块
对于顶层窗口则等同于屏幕绝对坐标位置矩形区块

win.getRect(输入窗口句柄,true) #

返回窗体屏幕坐标位置矩形区块
返回值为 ::RECT 结构体

win.getRoot(输入窗口句柄) #

获取顶层父窗口句柄
没有上层父窗口该函数返回自身句柄

win.getRootOwner(输入窗口句柄) #

获取顶层父窗口句柄或所有者窗口
没有上层父窗口或所者者该函数返回自身句柄

win.getScreen() #

返回主屏幕宽度、高度,
win.getScreenPos 函数可获取所有显示器组成的虚拟屏幕位置与大小

win.getScreenPos #

获取指定屏幕或所有屏幕位置与大小

win.getScreenPos() #

返回所有显示器组成的虚拟屏幕位置与大小
此函数返回多个值,分别为:x坐标,y坐标,宽,高。
因为多个显示器的可能设置不同的排序,屏幕起始坐标并不总是 0,0,
注意单个显示器仍然可以使用此函数获取

win.getScreenPos(坐标,选项) #

获取指定坐标所在的显示器在屏幕位置与大小,
此函数返回多个值,分别为:x坐标,y坐标,宽,高。
参数@1可指定 ::POINT 结构体,或包含 x,y 成员的表,
参数 @2 默认为 _MONITOR_DEFAULTTONEAREST,即获取最靠近的显示器,
如果失败则返回所有显示器组成的虚拟屏幕位置与大小

win.getScreenPos(窗口句柄,选项) #

获取窗口所在屏幕位置与大小,
此函数返回多个值,分别为:x坐标,y坐标,宽,高。
参数 @2 默认为 _MONITOR_DEFAULTTONEAREST,即获取最靠近的显示器,
如果失败则返回所有显示器组成的虚拟屏幕位置与大小

win.getStyle(窗口句柄,限定样式,不允许包含的样式) #

获取指定窗口样式,除句柄外其他参数可选

win.getStyleEx(窗口句柄,限定样式,不允许包含的样式) #

获取窗口扩展样式,除句柄外其他参数可选

win.getText(输入窗口句柄) #

获取窗口文本
外部进程窗口请使用winex.getText()函数替代

win.getText(输入窗口句柄,20) #

获取窗口文本,并指定缓冲区大小

如果目标窗口属于外部进程并可能失去响应导致此函数阻塞,
请改用winex.getText函数获取窗口文本

win.getTextById(hwnd,id,len=256) #

获取窗口上控件的文本
参数(窗口句柄,控件ID,缓冲区大小)

win.getThreadProcessId(输入窗口句柄) #

返回线程ID,进程ID
var tid,pid=win.getThreadProcessId(hwnd)

win.getWindow( hwnd, _GW ) #

获取相关窗口

win.getWorkArea #

返回屏幕上窗口最大化时可使用的显示区块。
返回值为 ::RECT 结构体

返回对象:rectObject

win.getWorkArea() #

返回对象:rectObject

win.getWorkArea(坐标,选项) #

返回屏幕上窗口最大化时可使用的显示区块
参数@1可指定 ::POINT 结构体,或包含 x,y 成员的表,
省略参数@1 则自动获取鼠标当前坐标作为参数。
选项默认为 _MONITOR_DEFAULTTONEAREST,即获取最靠近的显示器

win.getWorkArea(窗口句柄,选项) #

返回屏幕上窗口最大化时可使用的显示区块,所有参数可选,
选项默认为 _MONITOR_DEFAULTTONEAREST,即获取最靠近的显示器

win.hitBorder #

用法同ptInBorder函数,
但返回值转换为_WM_NCHITTEST消息返回值

win.hitBorder(RECT矩形,x坐标,y坐标,上,右,下,左) #

可以使用一个参数指定四周边框宽度

win.hookMessage(消息钩子函数) #

win.hookMessage(   
    function(msg){  

    }   
)

win.hookMessage(消息钩子函数,false) #

移除消息钩子函数
消息钩子在分发窗口消息以前触发
可返回值以阻止消息处理

win.invoke(func,...) #

thread.invokeAndWait(  
    function(){  
        import win;  
        /*创建工作线程执行参数 @1 指定的线程函数,  
参数@1之后的其他可选参数会作为调用线程函数的参数。  
调用并等待线程函数执行完毕,然后获取此线程函数的返回值,  
在界面线程等待时界面仍可响应用户操作,线程函数的返回值会返回给调用线程,  
线程函数拥有独立的全局变量,并应遵守多线程调用规则*/  
    }   
)

win.isChild(父窗口句柄,子窗口句柄) #

判断参数二指定的窗口是否参数一指定窗口的子窗口或间接子窗口
任何一个参数为null或0返回false

win.isClosed() #

用户是否关闭了全部窗口

win.isDialogMessage(hwnd,msg) #

处理对话框控制键消息

win.isEnable(输入窗口句柄) #

判断窗口是否启用状态

win.isIconic(输入窗口句柄) #

判断窗口是否最小化为任务栏图标。
如果参数可能为子窗口句柄,应调用 win.getRoot 函数先转换为顶层窗口。
注意:对最小化窗口获取 ::RECT 或坐标时会包含类似 -32000 这种超大的伪坐标。

win.isVisible(输入窗口句柄) #

判断窗口是否可见。
如果上级父窗口不可见,则此函数仍然会返回 false。
如果要检查子窗口本身的可见样式,
可用 win.getStyle 函数检查是否设置 _WS_VISIBLE 样式。
如果是 aardio 创建的窗口对象,通过 hide 属性可检查是否设置 _WS_VISIBLE 样式。

此函数不会检查伪装为可见的窗口隐形状态(Cloaked),
winex.isVisible 支持检测隐形状态

win.isWindow(输入窗口句柄) #

判断是否有效窗口
注意 aardio 创建的窗体或控件请使用 valid 属性判断,
aardio 创建的所有控件都有 valid 属性(不一定会出现在提示中)

win.isZoomed(输入窗口句柄) #

判断窗口是否最大化

win.loadForm #

加载窗体代码文件

win.loadForm() #

返回对象:winform

win.loadForm(创建窗体参数,构造函数,父窗体) #

加载窗体代码文件
参数@1为窗体代码文件路径,工程内代码文件路径必须以斜杠开始,
参数@2为选参数,可用于替换win.form构造函数,
可选添加不定个数调用参数,在被加载的窗体文件内使用...操作符接收参数

返回窗体代码文件的返回值,
如果未返回值则返回执行该文件创建的首个win.form对象

win.loopMessage() #

如果当前消息循环未启动则启动消息循环,
返回退出代码(可用于 return 语句退出当前线程并设置为线程返回值)

此函数会启动界面线程的消息循环,循环处理并分发所有窗口消息,
直到应用程序调用 win.quitMessage 才会退出。

所有非模态、非 MessageOnly 的独立窗口( 或 mainForm 窗口 )都关闭后,
将会自动终止 win.loopMessage 创建的消息循环(通常也就是退出界面线程)。
因为关闭消息是异步处理,所以即使是在调用 win.loopMessage 前关闭窗口,
仍然可能导致退出消息循环

win.lowerRight(hwnd,x,y) #

移动窗口到右下角,
可选使用x参数指定右边距,y参数指定下边距

win.mapPoint #

转换窗口坐标

win.mapPoint(源窗口句柄,目标窗口句柄,POINT对象) #

省略的句柄默认以桌面句柄替代

win.mapRect #

转换窗口矩形

win.mapRect(源窗口句柄,目标窗口句柄,RECT对象) #

省略的句柄默认以桌面句柄替代

win.modifyStyle(hwnd,remove,add,swpFlags) #

修改窗口样式,所有参数都是可选参数,
@hwnd 指定目标窗口句柄
@remove 用数值指定要移除的样式,可使用 WS 前缀的常量
@add 用数值指定要添加的样式,可使用 WS 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考函数源码

win.modifyStyleEx(hwnd,remove,add,swpFlags) #

修改窗口扩展样式,所有参数都是可选参数,
@hwnd 指定目标窗口句柄
@remove 用数值指定要移除的样式,可使用 WS_EX 前缀的常量
@add 用数值指定要添加的样式,可使用 WS_EX 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考函数源码

win.msgbox #

弹出消息框。
显示系统级别模态消息请改用 winex.msgbox 。

win.msgbox("文本","标题",图标样式,所有者窗口句柄,显示时间) #

弹出消息框。
除 参数@1 以外,所有参数可选。
如果 参数 @1 是表对象,自动调用 table.tostring 序列化为文本
其他类型调用 tostring 转为字符串。
可选用参数 @5 限定显示时间,以毫秒为单位,超时自动关闭。

可选参数 @3 可用字符串或数值指定图标样式(参考 MB 前缀常量值,设为 0 去掉图标与提示音),可选字符串值:

win.msgboxErr #

弹出错误消息框

win.msgboxErr("文本","标题",所有者窗口句柄) #

弹出错误消息框。
参数 @3 可选指定所有者窗口句柄。
如果参数@1是表对象,自动调用 table.tostring 序列化为文本
其他类型调用 tostring 转为字符串

win.msgboxTest #

弹出确认消息框

win.msgboxTest("文本","标题",所有者窗口句柄) #

弹出确认消息框,
返回布尔值表示用户是否按了“确定”按钮。
标题,所有者窗口参数可选
如果参数@1是表对象,自动调用 table.tostring 序列化为文本
其他类型调用 tostring 转为字符串

win.msgboxTimeout("文本","标题",超时值,样式,所有者窗口句柄) #

弹出消息框,超时自动关闭。
超时值以毫秒为单位(可选参数),
除参数@1以外,其他所有参数可选。
如果参数@1是表对象,自动调用 table.tostring 序列化为文本
其他类型调用 tostring 转为字符串

一般不必指定消息框样式,不必了解该参数用法

win.parseMessage #

win.parseMessage = win._parseMessage

win.parseMessage_lite #

win.parseMessage = messageTranslateDispatch;

win.peekMessage(msg,窗口句柄,最小消息,最大消息,选项) #

等待并获取窗口消息,
msg参数可以是MSG结构体,也可以是一个空表用于接收新的MSG结构体,也可以省略
成功返回已填充消息的MSG结构体(如果指定了msg参数则该参数就是此返回值),
失败返回false,程序退出返回null

win.peekPumpInputMessage(msg) #

检测消息队列,如果有键盘鼠标、或绘图消息则处理消息并返回传入的消息对象,
如果程序退出返回null,如果无消息返回false,

可选使用参数@1指定MSG结构体或空表,重用同一MSG结构体,

此函数如果没有检查到消息会直接返回而不是等待,
可用于在耗时循环中避免界面不能响应用户操作

win.peekPumpMessage(msg,窗口句柄,最小消息,最大消息,选项) #

检测消息队列,如果有消息则处理消息并返回传入的消息对象,
如果程序退出返回null,如果无消息返回false,

所有参数可选,参数用法请参考win.peekMessage
可选使用参数@1指定MSG结构体或空表,重用同一MSG结构体,

此函数如果没有检查到消息会直接返回而不是等待,
可用于在耗时循环中避免界面不能响应用户操作

win.ptInBorder #

如果坐标在边框范围内返回以下边框名字之一
top,topleft,topright,bottom,bottomleft,bottomright

win.ptInBorder(RECT矩形,x坐标,y坐标,上,右,下,左) #

上,右,下,左参数指定边框宽度
可以使用一个参数指定四周边框宽度

win.pumpMessage() #

等待并处理一个窗口消息
注意如果没有参数,此函数会一直等待

win.quitMessage() #

退出消息循环
可在参数中指定 win.loopMessage 退出代码。

win.registerClassEx("类名",类参数表,"源类名") #

注册新类名
如果参数@3指定了源类名则复制该类
可选用参数@2指定 WNDCLASSEX的部分字段值

win.registerFormClass(cls,param,className) #

注意窗口类名,

如果指定了cls,则使用线程ID格式化为伪类名
此时className为源类名

如果未指定cls,则直接注册className为类名
如果该窗口类已存在则直接返回该类名

此函数返回注册成功的窗口类名

win.releaseCapture() #

释放鼠标捕获,成功返回true

win.resetMessage() #

自消息队列中移除_WM_QUIT消息,
使消息循环重置为未退出状态

win.sendCopyData(窗口句柄,发送数据,数据类型) #

使用 _WM_COPYDATA 消息发送字符串到其他进程窗口。
发送数据可以是字符串或 table 对象,
数据类型可选指定一个数值

win.setActive(输入窗口句柄) #

设置激活窗口

win.setCapture(窗口句柄) #

开始捕获鼠标消息,返回上次调用该函数的窗口句柄

win.setFocus(输入窗口句柄) #

设置输入焦点。
附加外部输入线程后立即调用此函数可能偶尔会无效,可延时至少几十毫秒

win.setForeground(窗口句柄,禁止从最小化恢复) #

前置窗口并获取输入焦点。
如果参数 @2 未指定为 true ,且窗口已最小化,则先恢复并显示窗口。
当前程序是背景窗口时,win7以上系统在任务栏闪烁。

win.setOwner #

设置所有者窗口
下属窗口总是显示在所有者窗口前面
例如模态对话框通常会指定一个所有者窗口

设置了所有者(也没有指定appwindows样式的)的下属窗口不会显示在任务栏
所有者窗口管理下属窗口的生存期

win.setOwner(窗口句柄,所有者窗口句柄) #

成功返回原来的所有者窗口句柄
窗口拥有WS_CHILD样式时不执行并返回空值

win.setParent #

设置父窗口
子窗口显示在父窗口客户区
父窗口管理子窗口的生存期

win.setParent(子窗口句柄,父窗口句柄) #

设置父窗口
子窗口显示在父窗口客户区

win.setPos(窗口句柄,x坐标,y坐标,宽,高,插入位置,选项) #

调整窗口坐标位置或排序,除句柄外所有参数可选
同时指定x,y坐标则移动位置
同时指定宽高则改变大小
指定插入位置<句柄或_HWND前缀常量>则调整Z序
选项不用指定,可参考此函数源码了解细节

win.setRect(输入窗口句柄,rc) #

设置窗口相对坐标位置矩形区块。
参数 @rc 为 ::RECT 结构

win.setRect(输入窗口句柄,rc,true) #

设置窗口屏幕绝对坐标位置矩形区块。
参数 @rc 为 ::RECT 结构

win.setText(hwnd,lpString) #

参数(窗口句柄,要设置的文本)
外部进程窗口请使用winex.setText()函数替代

win.setTextById(hwnd,id,str) #

设置窗口上控件的文本
参数(窗口句柄,控件ID,文本)

win.setTimeout(回调函数,延时,其他调用参数) #

win.setTimeout(  
    function(){  
        /*在已经导入win.ui的界面线程内异步延时执行这里的代码  
除回调函数以外,其他参数都是可选参数  
延时默认为0*/  
    }  
)

win.setTop(输入窗口句柄) #

前置窗口到当前线程Z序顶部
顶层窗口或者设置了 _WS_CLIPSIBLINGS 重叠裁剪样式的窗口向前移动
子窗口会向后面移动.

win.setTopmost(输入窗口句柄) #

置顶并显示窗口

win.setTopmost(输入窗口句柄,false) #

取消置顶窗口

win.setWindowTheme(hwnd,subAppName,subIdList) #

设置主题样式
参数 @2,@3 可传字符串或 null 值

win.show(hwnd,false) #

隐藏窗口

win.show(hwnd,可选输入显示参数) #

显示窗口,可选输入以_SW_为前缀的显示参数性,
使用 win.show( hwnd,3/*_SW_MAXIMIZE*/ ) 最大化显示,
使用 win.show( hwnd,6/*_SW_MINIMIZE*/ ) 最小化显示,
使用 win.show( hwnd,9/*_SW_RESTORE*/ ) 自最大化或最小化恢复显示。

win.showForeground(窗口句柄,x,y,cx,cy) #

把窗口显示在屏幕最前面,最小化窗口自动还原
类似setForeground但不会改变输入焦点,
除句柄外,其他参数为可选参数

win.title #

窗口默认标题
如果不指定则自动指定为第一个winform对象的标题

win.toClient(输入窗口句柄,x,y) #

将坐标转换为客户坐标,返回 x,y 坐标值
::POINT 结构体请直接使用 ::ScreenToClient

win.toClientRect(输入窗口句柄,rc) #

将::RECT 结构体转换为客户坐标。
返回值为 ::RECT 结构体

win.toScreen(输入窗口句柄,x,y) #

将坐标转换为屏幕坐标,返回 x,y 坐标值
::POINT 结构体请直接使用 ::ClientToScreen

win.toScreenRect() #

返回对象:rectObject

win.toScreenRect(输入窗口句柄,rc) #

将::RECT 结构体转换为屏幕坐标。
返回值为 ::RECT 结构体

win.wait(等待函数,窗口句柄,超时,延时间隔,...) #

循环执行等待函数,并等待返回值
直到等待函数返回非空值,或存在第二个返回值,或参数@2指定的窗口关闭
等待函数返回的值就是win.wait的返回值,
如果指定超时,超过指定毫秒时返回null,
除等待函数以外,所有参数可选。
延时间隔之后的所有参数将作为调用等待函数的参数。

MsgObject 成员列表 #

MsgObject.hwnd #

窗口句柄

MsgObject.lParam #

附加参数

MsgObject.message #

消息ID

MsgObject.pt #

返回对象:pointObject

MsgObject.time #

时间

MsgObject.wParam #

附加参数

WINDOWPLACEMENTObject 成员列表 #

WINDOWPLACEMENTObject.ptMaxPosition #

最大化左上角左标

返回对象:pointObject

WINDOWPLACEMENTObject.ptMinPosition #

最小化左上角坐标

返回对象:pointObject

WINDOWPLACEMENTObject.rcNormalPosition #

还原状态位置

返回对象:rectObject

WINDOWPLACEMENTObject.showCmd #

_SW_SHOWMAXIMIZED 等表示窗口状态

WINDOWPLACEMENTObject.update() #

更新窗口位置信息,可选指定一个目标窗口句柄参数

nmhdrObject 成员列表 #

nmhdrObject.code #

通知代码

nmhdrObject.hwndFrom #

发送消息的控件句柄

nmhdrObject.idFrom #

发送消息的控件ID

全局常量

::MSG #

class{ 
    addr hwnd;
    INT message;
    ADDR wParam;
    addr lParam;
    INT time;
    int x;
    int y;
}

::NMHDR #

class {
    addr hwndFrom;
    ADDR idFrom;
    INT code;
}

::NMHDR() #

通知消息结构体

返回对象:nmhdrObject

::WNDCLASSEX #

class{ 
    INT cbSize = 48; 
    INT style = 0xB;//_CS_HREDRAW | _CS_VREDRAW | _CS_DBLCLKS;
    pointer lpfnWndProc;
    int cbClsExtra;
    int cbWndExtra;
    pointer hInstance;
    pointer hIcon;
    pointer hCursor;
    pointer hbrBackground;
    ustring lpszMenuName;
    ustring lpszClassName;
    pointer hIconSm;
}

Markdown 格式