# win.ui.ctrl.atlax 库模块帮助文档

<details>  <summary>用法步骤</summary>  <p>

请参考[使用自定义控件类](https://www.aardio.com/zh-cn/docs/library-guide/std/win/ui/ctrl/custom.html#cls)

atlax 控件用法步骤：

1. 拖一个 custom 控件放到界面上,控件类名改为"atlax"
2. 然后在 atlax 控件的文本属性中指定要创建的 COM 类名，例如 "InkEd.InkEdit"

</p></details>

## win.ui.ctrl 成员列表 <a id="win.ui.ctrl" href="#win.ui.ctrl">&#x23;</a>

### win.ui.ctrl.atlax <a id="win.ui.ctrl.atlax" href="#win.ui.ctrl.atlax">&#x23;</a>
静态文本控件支持库

### win.ui.ctrl.atlax() <a id="win.ui.ctrl.atlax" href="#win.ui.ctrl.atlax">&#x23;</a>
静态文本控件  

[返回对象:atlAxWinObject](#atlAxWinObject)

## atlAxWinObject 成员列表 <a id="atlAxWinObject" href="#atlAxWinObject">&#x23;</a>

### atlAxWinObject._defWindowProc(hwnd,message,wParam,lParam) <a id="atlAxWinObject._defWindowProc" href="#atlAxWinObject._defWindowProc">&#x23;</a>
用于在 wndproc 回调中提前调用默认消息回调函数,  
所有窗口和控件定义了 wndproc 回调以后会自动创建这个函数,  
调用此函数以后,wndproc 必须指定非 null 返回值,  
以避免再次重复调用默认回调函数

### atlAxWinObject._embedObject <a id="atlAxWinObject._embedObject" href="#atlAxWinObject._embedObject">&#x23;</a>
嵌入 COM 控件的容器对象  

[返回对象:embedObject](https://www.aardio.com/zh-cn/docs/library-reference/com/_.html#embedObject)

### atlAxWinObject._parentForm <a id="atlAxWinObject._parentForm" href="#atlAxWinObject._parentForm">&#x23;</a>
返回创建控件的容器窗口（win.form对象），所有窗口控件都拥有此只读属性。  
对于使用窗体设计器创建的窗口，也就是返回设计时窗体容器。  

即使子窗口移除子窗口样式、更改父子关系，或以 orphanWindow显示，  
控件的 _parentForm 始终都不会改变  

[返回对象:winform](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/_.html#winform)

### atlAxWinObject.addCtrl <a id="atlAxWinObject.addCtrl" href="#atlAxWinObject.addCtrl">&#x23;</a>

```aardio
atlAxWinObject.addCtrl(  
	button={ cls="button";text="button";left=33;top=32;right=126;bottom=81;autoResize=false }    
)
```

### atlAxWinObject.adjust <a id="atlAxWinObject.adjust" href="#atlAxWinObject.adjust">&#x23;</a>

```aardio
atlAxWinObject.adjust = function( cx,cy,wParam ) {	   

};
```

### atlAxWinObject.adjust() <a id="atlAxWinObject.adjust" href="#atlAxWinObject.adjust">&#x23;</a>
调整窗口 - 自定义事件函数

### atlAxWinObject.bgcolor <a id="atlAxWinObject.bgcolor" href="#atlAxWinObject.bgcolor">&#x23;</a>
获取或修改景颜色数值

### atlAxWinObject.bottom <a id="atlAxWinObject.bottom" href="#atlAxWinObject.bottom">&#x23;</a>
底部坐标

### atlAxWinObject.capture <a id="atlAxWinObject.capture" href="#atlAxWinObject.capture">&#x23;</a>
是否捕获全局鼠标消息

### atlAxWinObject.changeInterval(定时器ID,间隔时间,回调函数) <a id="atlAxWinObject.changeInterval" href="#atlAxWinObject.changeInterval">&#x23;</a>
重新设置间隔时间或回调函数

### atlAxWinObject.className <a id="atlAxWinObject.className" href="#atlAxWinObject.className">&#x23;</a>
运行时类名

### atlAxWinObject.clearInterval(定时器ID) <a id="atlAxWinObject.clearInterval" href="#atlAxWinObject.clearInterval">&#x23;</a>
删除定时器

### atlAxWinObject.close() <a id="atlAxWinObject.close" href="#atlAxWinObject.close">&#x23;</a>
关闭控件窗口

### atlAxWinObject.cls <a id="atlAxWinObject.cls" href="#atlAxWinObject.cls">&#x23;</a>
设计时类名

### atlAxWinObject.color <a id="atlAxWinObject.color" href="#atlAxWinObject.color">&#x23;</a>
获取或修改字体颜色数值

### atlAxWinObject.disabled <a id="atlAxWinObject.disabled" href="#atlAxWinObject.disabled">&#x23;</a>
是否禁用

### atlAxWinObject.getClientRect() <a id="atlAxWinObject.getClientRect" href="#atlAxWinObject.getClientRect">&#x23;</a>
控件客户区块位置(::RECT结构体)  

[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### atlAxWinObject.getControl() <a id="atlAxWinObject.getControl" href="#atlAxWinObject.getControl">&#x23;</a>
返回com控件对象  
aardio默认会尝试将atlax创建控件自身注册为默认事件接口

### atlAxWinObject.getControlClsId() <a id="atlAxWinObject.getControlClsId" href="#atlAxWinObject.getControlClsId">&#x23;</a>
返回COM对象类名

### atlAxWinObject.getControlTypeName() <a id="atlAxWinObject.getControlTypeName" href="#atlAxWinObject.getControlTypeName">&#x23;</a>
返回COM接口名

### atlAxWinObject.getFont() <a id="atlAxWinObject.getFont" href="#atlAxWinObject.getFont">&#x23;</a>
控件字体(::LOGFONT结构体)  

[返回对象:logfontObject](#logfontObject)

### atlAxWinObject.getParent() <a id="atlAxWinObject.getParent" href="#atlAxWinObject.getParent">&#x23;</a>
返回父窗口  

[返回对象:atlAxWinObject](#atlAxWinObject)

### atlAxWinObject.getPos() <a id="atlAxWinObject.getPos" href="#atlAxWinObject.getPos">&#x23;</a>
返回相对坐标,宽,高  
x,y,cx,cy=win.getPos(hwnd)

### atlAxWinObject.getRect() <a id="atlAxWinObject.getRect" href="#atlAxWinObject.getRect">&#x23;</a>
控件区块位置(::RECT结构体)

### atlAxWinObject.getRect(true) <a id="atlAxWinObject.getRect" href="#atlAxWinObject.getRect">&#x23;</a>
控件屏幕区块位置(::RECT结构体)

### atlAxWinObject.height <a id="atlAxWinObject.height" href="#atlAxWinObject.height">&#x23;</a>
高度

### atlAxWinObject.hwnd <a id="atlAxWinObject.hwnd" href="#atlAxWinObject.hwnd">&#x23;</a>
控件句柄

### atlAxWinObject.id <a id="atlAxWinObject.id" href="#atlAxWinObject.id">&#x23;</a>
控件ID

### atlAxWinObject.invalidate(/*可选使用::RECT()对象指定客户区*/) <a id="atlAxWinObject.invalidate(/*可选使用::RECT" href="#atlAxWinObject.invalidate(/*可选使用::RECT">&#x23;</a>
使窗口绘图区无效

### atlAxWinObject.invalidate(/*可选使用::RECT()对象指定客户区*/,0) <a id="atlAxWinObject.invalidate(/*可选使用::RECT" href="#atlAxWinObject.invalidate(/*可选使用::RECT">&#x23;</a>
使窗口绘图区无效  
不刷新背景

### atlAxWinObject.isForm <a id="atlAxWinObject.isForm" href="#atlAxWinObject.isForm">&#x23;</a>
标准库 win.ui 创建的所有窗体与控件对象都拥有此属性。  
win.form 创建的窗体对象返回 true,其他控件对象返回 false 。

### atlAxWinObject.left <a id="atlAxWinObject.left" href="#atlAxWinObject.left">&#x23;</a>
左侧坐标

### atlAxWinObject.messageOnly() <a id="atlAxWinObject.messageOnly" href="#atlAxWinObject.messageOnly">&#x23;</a>
将窗口转换为message-only window  
该窗口不可见,仅用于消息分发

### atlAxWinObject.modifyStyle(remove,add,swpFlags) <a id="atlAxWinObject.modifyStyle" href="#atlAxWinObject.modifyStyle">&#x23;</a>
修改窗口样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### atlAxWinObject.modifyStyleEx(remove,add,swpFlags) <a id="atlAxWinObject.modifyStyleEx" href="#atlAxWinObject.modifyStyleEx">&#x23;</a>
修改窗口扩展样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_EX_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_EX_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### atlAxWinObject.msgbox("字符串参数") <a id="atlAxWinObject.msgbox" href="#atlAxWinObject.msgbox">&#x23;</a>
弹出对话框,可选用参数@2指定标题

### atlAxWinObject.msgboxErr("字符串参数") <a id="atlAxWinObject.msgboxErr" href="#atlAxWinObject.msgboxErr">&#x23;</a>
弹出错误对话框,可选用参数@2指定标题

### atlAxWinObject.msgboxTest("字符串参数") <a id="atlAxWinObject.msgboxTest" href="#atlAxWinObject.msgboxTest">&#x23;</a>
弹出询问对话框,可选用参数@2指定标题

### atlAxWinObject.orphanWindow(transparent,hwndBuddy,borderless) <a id="atlAxWinObject.orphanWindow" href="#atlAxWinObject.orphanWindow">&#x23;</a>
创建悬浮窗口。  
悬浮窗口是模仿子窗口外观效果的独立窗口，父窗口可自动调整子窗口到设定位置。  
可选参数 @transparent 为 true 则转换为分层透明窗口。  
可选利用 @hwndBuddy 参数指定外部进程窗口句柄的并附加在内部控件上以实现相同的效果。  
伙伴窗口总是会保持在悬浮窗口前面，并保持相同的大小、位置。  
可重复调用此函数更换伙伴窗口，旧的伙伴窗口必须自行关闭。  
可选指定 @borderless 参数 为 true 以移除 @hwndBuddy  的窗口边框。

### atlAxWinObject.redraw() <a id="atlAxWinObject.redraw" href="#atlAxWinObject.redraw">&#x23;</a>
刷新

### atlAxWinObject.redrawTransparent() <a id="atlAxWinObject.redrawTransparent" href="#atlAxWinObject.redrawTransparent">&#x23;</a>
刷新  
透明背景时请使用此函数替代redraw()

### atlAxWinObject.right <a id="atlAxWinObject.right" href="#atlAxWinObject.right">&#x23;</a>
右侧坐标

### atlAxWinObject.setFocus() <a id="atlAxWinObject.setFocus" href="#atlAxWinObject.setFocus">&#x23;</a>
设置焦点

### atlAxWinObject.setFont(指定字体) <a id="atlAxWinObject.setFont" href="#atlAxWinObject.setFont">&#x23;</a>
指定LOGFONT字体对象,或逻辑字体句柄

### atlAxWinObject.setFont(混入字体属性) <a id="atlAxWinObject.setFont" href="#atlAxWinObject.setFont">&#x23;</a>

```aardio
atlAxWinObject.setFont(point=10;name="宋体");
```

### atlAxWinObject.setInterval(回调函数,延时毫秒数,...) <a id="atlAxWinObject.setInterval" href="#atlAxWinObject.setInterval">&#x23;</a>

```aardio
atlAxWinObject.setInterval(回调函数,延时毫秒数,...setInterval(   
	function(){  
		/*参数@1指定执行函数,参数@2指定执行间隔，  
可选指定一个或多个回调参数，不指定回调参数则默认为:  
 hwnd,message,timerId,tick,  

如果在定时器中执行了win.delay等继续消息循环的代码，  
在定时器退出前不会再触发同一定时器（重入）。  

定时器回调函数返回数值可修改时间间隔,  
返回false取消该定时器*/  
	},1000   
)
```

### atlAxWinObject.setParent(控件对象) <a id="atlAxWinObject.setParent" href="#atlAxWinObject.setParent">&#x23;</a>
改变父窗口

### atlAxWinObject.setPos(x坐标,y坐标,宽,高,插入位置,参数) <a id="atlAxWinObject.setPos" href="#atlAxWinObject.setPos">&#x23;</a>
调整窗口位置或排序,所有参数可选  
同时指定x,y坐标则移动位置  
同时指定宽高则改变大小  
指定插入位置(句柄或_HWND前缀常量)则调整Z序

### atlAxWinObject.setRect(rc) <a id="atlAxWinObject.setRect" href="#atlAxWinObject.setRect">&#x23;</a>
设置控件区块位置(::RECT结构体)

### atlAxWinObject.setRect(rc,true) <a id="atlAxWinObject.setRect" href="#atlAxWinObject.setRect">&#x23;</a>
设置控件屏幕区块位置(::RECT结构体)

### atlAxWinObject.setRedraw(false) <a id="atlAxWinObject.setRedraw" href="#atlAxWinObject.setRedraw">&#x23;</a>
禁止重绘

### atlAxWinObject.setRedraw(true) <a id="atlAxWinObject.setRedraw" href="#atlAxWinObject.setRedraw">&#x23;</a>
恢复重绘

### atlAxWinObject.show(true) <a id="atlAxWinObject.show" href="#atlAxWinObject.show">&#x23;</a>
显示控件

### atlAxWinObject.text <a id="atlAxWinObject.text" href="#atlAxWinObject.text">&#x23;</a>
控件文本。  
在创建控件的构造参数中使用 text 段指定要创建的 COM 对象类名。

### atlAxWinObject.theme <a id="atlAxWinObject.theme" href="#atlAxWinObject.theme">&#x23;</a>
外观主题,例如  
winform.button.theme = "Explorer"  
winform.button.theme = false

### atlAxWinObject.top <a id="atlAxWinObject.top" href="#atlAxWinObject.top">&#x23;</a>
顶部坐标

### atlAxWinObject.translateAccelerator <a id="atlAxWinObject.translateAccelerator" href="#atlAxWinObject.translateAccelerator">&#x23;</a>

```aardio
atlAxWinObject.translateAccelerator = function(msg){   
	/*返回是否快捷键*/  
}
```

### atlAxWinObject.update() <a id="atlAxWinObject.update" href="#atlAxWinObject.update">&#x23;</a>
重绘invalidate函数指定的区块

### atlAxWinObject.visible <a id="atlAxWinObject.visible" href="#atlAxWinObject.visible">&#x23;</a>
当前控件窗口是否显示。  
仅检查当前窗口的可见性样式（窗口 是否具有 _WS_VISIBLE 样式）。  
不考虑父窗口是否可见，不考虑是否被其他窗口遮挡。  
如果需要同时判断父窗口的可见性，应改用 win.isVisible 函数。

### atlAxWinObject.width <a id="atlAxWinObject.width" href="#atlAxWinObject.width">&#x23;</a>
宽度
