# win.ui.ctrl.syslink 库模块帮助文档

<details>  <summary>用法步骤</summary>  <p>

请参考：

- [使用自定义控件类指南](https://www.aardio.com/zh-cn/docs/library-guide/std/win/ui/ctrl/custom.html#cls)
- [syslink 控件使用范例](https://www.aardio.com/zh-cn/docs/examples/Windows/Controls/syslink.html)

atlax 控件用法步骤：

1. 拖一个 custom 控件放到界面上,控件类名改为"atlax"
2. 然后在 atlax 控件的文本属性中指定要创建的 COM 类名，例如 "InkEd.InkEdit"

</p></details>

[范例](https://www.aardio.com/zh-cn/docs/examples/Windows/Controls/syslink.html)

## win.ui.ctrl 成员列表 <a id="win.ui.ctrl" href="#win.ui.ctrl">&#x23;</a>

### win.ui.ctrl.syslink <a id="win.ui.ctrl.syslink" href="#win.ui.ctrl.syslink">&#x23;</a>
超链接控件类

### win.ui.ctrl.syslink() <a id="win.ui.ctrl.syslink" href="#win.ui.ctrl.syslink">&#x23;</a>
超链接控件。  

[返回对象:syslinkObject](#syslinkObject)

## syslinkObject 成员列表 <a id="syslinkObject" href="#syslinkObject">&#x23;</a>

### syslinkObject._parentForm <a id="syslinkObject._parentForm" href="#syslinkObject._parentForm">&#x23;</a>
返回创建控件的容器窗口（win.form对象），所有窗口控件都拥有此只读属性。  
对于使用窗体设计器创建的窗口，也就是返回设计时窗体容器。  

即使子窗口移除子窗口样式、更改父子关系，或以 orphanWindow显示，  
控件的 _parentForm 始终都不会改变  

[返回对象:winform](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/_.html#winform)

### syslinkObject.adjust <a id="syslinkObject.adjust" href="#syslinkObject.adjust">&#x23;</a>

```aardio
syslinkObject.adjust = function( cx,cy,wParam ) {	   

};
```

### syslinkObject.adjust() <a id="syslinkObject.adjust" href="#syslinkObject.adjust">&#x23;</a>
调整窗口 - 自定义事件函数

### syslinkObject.bottom <a id="syslinkObject.bottom" href="#syslinkObject.bottom">&#x23;</a>
底部坐标

### syslinkObject.capture <a id="syslinkObject.capture" href="#syslinkObject.capture">&#x23;</a>
是否捕获全局鼠标消息

### syslinkObject.changeInterval(定时器ID,间隔时间,回调函数) <a id="syslinkObject.changeInterval" href="#syslinkObject.changeInterval">&#x23;</a>
重新设置间隔时间或回调函数

### syslinkObject.className <a id="syslinkObject.className" href="#syslinkObject.className">&#x23;</a>
运行时类名

### syslinkObject.clearInterval(定时器ID) <a id="syslinkObject.clearInterval" href="#syslinkObject.clearInterval">&#x23;</a>
删除定时器

### syslinkObject.close() <a id="syslinkObject.close" href="#syslinkObject.close">&#x23;</a>
关闭控件窗口

### syslinkObject.cls <a id="syslinkObject.cls" href="#syslinkObject.cls">&#x23;</a>
设计时类名

### syslinkObject.disabled <a id="syslinkObject.disabled" href="#syslinkObject.disabled">&#x23;</a>
是否禁用

### syslinkObject.getClientRect() <a id="syslinkObject.getClientRect" href="#syslinkObject.getClientRect">&#x23;</a>
控件客户区块位置(::RECT结构体)  

[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### syslinkObject.getFont() <a id="syslinkObject.getFont" href="#syslinkObject.getFont">&#x23;</a>
控件字体(::LOGFONT结构体)  

[返回对象:logfontObject](#logfontObject)

### syslinkObject.getItem() <a id="syslinkObject.getItem" href="#syslinkObject.getItem">&#x23;</a>
[返回对象:syslinklitemObject](#syslinklitemObject)

### syslinkObject.getItem(索引) <a id="syslinkObject.getItem" href="#syslinkObject.getItem">&#x23;</a>
返回超链接设置,该值为 LITEM 结构体。  
参数指定获取第几个超链接的设置，默认值为 1。

### syslinkObject.getParent() <a id="syslinkObject.getParent" href="#syslinkObject.getParent">&#x23;</a>
返回父窗口  

[返回对象:syslinkObject](#syslinkObject)

### syslinkObject.getPos() <a id="syslinkObject.getPos" href="#syslinkObject.getPos">&#x23;</a>
返回相对坐标,宽,高  
x,y,cx,cy=win.getPos(hwnd)

### syslinkObject.getRect() <a id="syslinkObject.getRect" href="#syslinkObject.getRect">&#x23;</a>
控件区块位置(::RECT结构体)

### syslinkObject.getRect(true) <a id="syslinkObject.getRect" href="#syslinkObject.getRect">&#x23;</a>
控件屏幕区块位置(::RECT结构体)

### syslinkObject.height <a id="syslinkObject.height" href="#syslinkObject.height">&#x23;</a>
高度

### syslinkObject.hwnd <a id="syslinkObject.hwnd" href="#syslinkObject.hwnd">&#x23;</a>
控件句柄

### syslinkObject.id <a id="syslinkObject.id" href="#syslinkObject.id">&#x23;</a>
控件 ID，注意这个不是指超链接的 ID。

### syslinkObject.invalidate(/*可选使用::RECT()对象指定客户区*/) <a id="syslinkObject.invalidate(/*可选使用::RECT" href="#syslinkObject.invalidate(/*可选使用::RECT">&#x23;</a>
使窗口绘图区无效

### syslinkObject.invalidate(/*可选使用::RECT()对象指定客户区*/,0) <a id="syslinkObject.invalidate(/*可选使用::RECT" href="#syslinkObject.invalidate(/*可选使用::RECT">&#x23;</a>
使窗口绘图区无效  
不刷新背景

### syslinkObject.left <a id="syslinkObject.left" href="#syslinkObject.left">&#x23;</a>
左侧坐标

### syslinkObject.link <a id="syslinkObject.link" href="#syslinkObject.link">&#x23;</a>
创建、设置或者获取控件的第一个超链接地址。  
这个参数应当指定一个网址，可使用任意协议。

### syslinkObject.modifyStyle(remove,add,swpFlags) <a id="syslinkObject.modifyStyle" href="#syslinkObject.modifyStyle">&#x23;</a>
修改窗口样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### syslinkObject.modifyStyleEx(remove,add,swpFlags) <a id="syslinkObject.modifyStyleEx" href="#syslinkObject.modifyStyleEx">&#x23;</a>
修改窗口扩展样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_EX_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_EX_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### syslinkObject.redraw() <a id="syslinkObject.redraw" href="#syslinkObject.redraw">&#x23;</a>
刷新

### syslinkObject.right <a id="syslinkObject.right" href="#syslinkObject.right">&#x23;</a>
右侧坐标

### syslinkObject.setFocus() <a id="syslinkObject.setFocus" href="#syslinkObject.setFocus">&#x23;</a>
设置焦点

### syslinkObject.setFont(指定字体) <a id="syslinkObject.setFont" href="#syslinkObject.setFont">&#x23;</a>
指定LOGFONT字体对象,或逻辑字体句柄

### syslinkObject.setFont(混入字体属性) <a id="syslinkObject.setFont" href="#syslinkObject.setFont">&#x23;</a>

```aardio
syslinkObject.setFont(point=10;name="宋体");
```

### syslinkObject.setInterval(回调函数,延时毫秒数,...) <a id="syslinkObject.setInterval" href="#syslinkObject.setInterval">&#x23;</a>

```aardio
syslinkObject.setInterval(回调函数,延时毫秒数,...setInterval(   
	function(){  
		/*参数@1指定执行函数,参数@2指定执行间隔，  
可选指定一个或多个回调参数，不指定回调参数则默认为:  
 hwnd,message,timerId,tick,  

如果在定时器中执行了win.delay等继续消息循环的代码，  
在定时器退出前不会再触发同一定时器（重入）。  

定时器回调函数返回数值可修改时间间隔,  
返回false取消该定时器*/  
	},1000   
)
```

### syslinkObject.setItem(item) <a id="syslinkObject.setItem" href="#syslinkObject.setItem">&#x23;</a>
修改超链接设置,参数为 getItem 函数返回的 LITEM 结构体

### syslinkObject.setParent(控件对象) <a id="syslinkObject.setParent" href="#syslinkObject.setParent">&#x23;</a>
改变父窗口

### syslinkObject.setPos(x坐标,y坐标,宽,高,插入位置,参数) <a id="syslinkObject.setPos" href="#syslinkObject.setPos">&#x23;</a>
调整窗口位置或排序,所有参数可选  
同时指定x,y坐标则移动位置  
同时指定宽高则改变大小  
指定插入位置(句柄或_HWND前缀常量)则调整Z序

### syslinkObject.setRect(rc) <a id="syslinkObject.setRect" href="#syslinkObject.setRect">&#x23;</a>
设置控件区块位置(::RECT结构体)

### syslinkObject.setRect(rc,true) <a id="syslinkObject.setRect" href="#syslinkObject.setRect">&#x23;</a>
设置控件屏幕区块位置(::RECT结构体)

### syslinkObject.setRedraw(false) <a id="syslinkObject.setRedraw" href="#syslinkObject.setRedraw">&#x23;</a>
禁止重绘

### syslinkObject.setRedraw(true) <a id="syslinkObject.setRedraw" href="#syslinkObject.setRedraw">&#x23;</a>
恢复重绘

### syslinkObject.show(true) <a id="syslinkObject.show" href="#syslinkObject.show">&#x23;</a>
显示控件

### syslinkObject.text <a id="syslinkObject.text" href="#syslinkObject.text">&#x23;</a>
控件文本。  
此控件的文本属性支持 HTML 的超链接语法，也就是 a 标签。  
超链接可选使用 href 属性设置超链接，可选使用 id 属性指定链接 ID。  
一个控件可以指定多个普通文本或者超链接，使用超链接索引区分。  
不支持其他 HTML 语法，例如换行应当直接换行而不是使用 `<br>`换行。  

可使用 link 属性获取或设置第一个超链接地址。

### syslinkObject.theme <a id="syslinkObject.theme" href="#syslinkObject.theme">&#x23;</a>
外观主题,例如  
winform.button.theme = "Explorer"  
winform.button.theme = false

### syslinkObject.top <a id="syslinkObject.top" href="#syslinkObject.top">&#x23;</a>
顶部坐标

### syslinkObject.translateAccelerator <a id="syslinkObject.translateAccelerator" href="#syslinkObject.translateAccelerator">&#x23;</a>

```aardio
syslinkObject.translateAccelerator = function(msg){   
	/*返回是否快捷键*/  
}
```

### syslinkObject.update() <a id="syslinkObject.update" href="#syslinkObject.update">&#x23;</a>
重绘invalidate函数指定的区块

### syslinkObject.visible <a id="syslinkObject.visible" href="#syslinkObject.visible">&#x23;</a>
当前控件窗口是否显示。  
仅检查当前窗口的可见性样式（窗口 是否具有 _WS_VISIBLE 样式）。  
不考虑父窗口是否可见，不考虑是否被其他窗口遮挡。  
如果需要同时判断父窗口的可见性，应改用 win.isVisible 函数。

### syslinkObject.width <a id="syslinkObject.width" href="#syslinkObject.width">&#x23;</a>
宽度

## syslinkObject 事件列表 <a id="syslinkObjectEvent" href="#syslinkObjectEvent">&#x23;</a>

### syslinkObject.onHyperlinkClick <a id="syslinkObject.onHyperlinkClick" href="#syslinkObject.onHyperlinkClick">&#x23;</a>

```aardio
syslinkObject.onHyperlinkClick = function(nmSysLink,url,id,index){
	raw.execute(url);/*点击超链接回调此事件，可使用此代码打开超链接。  
如果不指定回调函数，控件会默认调用 raw.execute 打开链接。  
nmSysLink 为通知消息使用的 LITEM 结构体，一般忽略即可。  
url 为触发的超链接地址，也就是 href 属性。  
id 为触发的链接 ID，也就是 id 属性。  
index 为索引，一个控件可以有多个超链接，第一个超链接索引为 1。*/
}
```

## syslinklitemObject 成员列表 <a id="syslinklitemObject" href="#syslinklitemObject">&#x23;</a>

### syslinklitemObject.iLink <a id="syslinklitemObject.iLink" href="#syslinklitemObject.iLink">&#x23;</a>
索引。  
一个控件可以有多个超链接，第一个超链接索引为 1。

### syslinklitemObject.id <a id="syslinklitemObject.id" href="#syslinklitemObject.id">&#x23;</a>
超链接的 ID 属性。

### syslinklitemObject.mask <a id="syslinklitemObject.mask" href="#syslinklitemObject.mask">&#x23;</a>
有效字段掩码。  
默认已设为 _LIF_ITEMINDEX | _LIF_STATE | _LIF_ITEMID | _LIF_URL

### syslinklitemObject.state <a id="syslinklitemObject.state" href="#syslinklitemObject.state">&#x23;</a>
状态，一般用不上。  
可选值为 _LIS_ENABLED, _LIS_FOCUSED, _LIS_VISITED 等

### syslinklitemObject.stateMask <a id="syslinklitemObject.stateMask" href="#syslinklitemObject.stateMask">&#x23;</a>
有效状态掩码

### syslinklitemObject.url <a id="syslinklitemObject.url" href="#syslinklitemObject.url">&#x23;</a>
超链接的 URL 属性。
