# win.ui.tooltip 库模块帮助文档

<details>  <summary>命名约定</summary>  <p>
1、一个提示控件指的是一个 win.ui.tooltip 控件，
原生控件类名 "tooltips_class32"，在 aardio 里的类名是 "tooltip",
在代码里我们把提示控件我们可以简称为 tooltip 或者 tooltipCtrl。

这个控件比较特别，没有写在 win.ui.ctrl 命名空间下，也不是由 win.form 创建。
但 win.ui.tooltip 实际上继承了 win.ui.ctrl.metaProperty，仍然由所有者窗口管理。

提示控件有一点像 aardio 里的 orphanWindow 是一个独立窗口，
所以他没有父窗口而是叫所有者窗口（为便于管理，tooltip 控件 仍然拥有 _parentForm 属性指向所有者窗口）,

但 tooltip 控件 不会跟随所有者窗口自适应调整显示位置，更不会做 DPI 缩放。
因为这些事 tooltip 控件自己做了。

2、一个提示控件有一个上层所有者窗口（创建提示控件的时候指定）。

3、一个「提示控件」可以管理多个「控件提示」，这里有点绕，不要弄反了。
控件提示 —— 也就是 TOOLINFO 结构体，TOOLINFO 类的完整路径为 win.ui.tooltip.TOOLINFO。

一个控件提示（TOOLINFO）可以关联一个控件窗口，这指的是所有者窗体上的控件窗口。
当然控件提示（TOOLINFO）也可以关联所有者窗体自己。

一个提示控件里一个窗口对象只能关联一个控件提示（TOOLINFO），
实际上你也不可能关联多个，哪有鼠标晃上去多个提示蹦出来乱跳呢。

「控件提示」在代码里会称为 toolinfo 或者缩写为 tool，
例如 addTool() 就是添加　TOOLINFO, 而 getCurrentTool() 就是获取当前控件提示。
</p></details>

## win.ui.tooltip 成员列表 <a id="win.ui.tooltip" href="#win.ui.tooltip">&#x23;</a>

提示控件,  
提示控件可以有一个所有者窗体，这应当是一个 win.form 对象,  
一个提示控件可以管理多个控件提示（ 也就是 TOOLINFO 对象 ）  
而每个 TOOLINFO 对象应关联一个所有者窗体上的控件窗口,  
当然 TOOLINFO 也可以关闭所有者窗体自己,  
同一个提示控件里同一个窗口只能关闭一个 TOOLINFO,  
同一控件关联多次会自动覆盖并删除之前创建的关联TOOLINFO

创建提示控件,  
提示控件可以有一个所有者窗体，这应当是一个 win.form 对象,  
一个提示控件可以管理多个控件提示（ 也就是 TOOLINFO 对象 ）  
而每个 TOOLINFO 对象应关联一个所有者窗体上的控件窗口,  
当然 TOOLINFO 也可以关闭所有者窗体自己,  
同一个提示控件里同一个窗口只能关闭一个 TOOLINFO,  
同一控件关联多次会自动覆盖并删除之前创建的关联TOOLINFO

### win.ui.tooltip.balloon <a id="win.ui.tooltip.balloon" href="#win.ui.tooltip.balloon">&#x23;</a>
创建汽泡外观提示控件,  
一个提示控件有一个所有者窗体,  
提示控件可以管理多个控件提示（TOOLINFO）,  
每个TOOLINFO关联一个控件窗口,  
每个控件窗口同时只能关联一个TOOLINFO

### win.ui.tooltip.balloon() <a id="win.ui.tooltip.balloon" href="#win.ui.tooltip.balloon">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### win.ui.tooltip.balloon(所有者窗体,创建参数) <a id="win.ui.tooltip.balloon" href="#win.ui.tooltip.balloon">&#x23;</a>
创建汽泡外观提示控件,参数@1为窗体对象,  
参数@2使用一个表指定创建选项与样式,可省略,  
参数@2的详细用法请参考源码与MSDN文档

### win.ui.tooltip.tracking <a id="win.ui.tooltip.tracking" href="#win.ui.tooltip.tracking">&#x23;</a>
创建提示控件,默认使用默认手动跟踪模式,  
一个提示控件有一个所有者窗体,  
提示控件可以管理多个控件提示（TOOLINFO）,  
每个TOOLINFO关联一个控件窗口,  
每个控件窗口同时只能关联一个TOOLINFO

### win.ui.tooltip.tracking() <a id="win.ui.tooltip.tracking" href="#win.ui.tooltip.tracking">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### win.ui.tooltip.tracking(ownerForm,hasCloseButton,balloon,topmost,absolute) <a id="win.ui.tooltip.tracking" href="#win.ui.tooltip.tracking">&#x23;</a>
创建提示控件,默认使用默认手动跟踪模式,  
@ownerForm 参数指定所有者窗口，省略则设置参数 @topmost,@absolute 为 true ，  
@hasCloseButton 参数指定是否显示关闭按钮，可省略，默认值为 true   
@balloon 参数指定是否启用汽泡外观,可省略默认值为 true   
@topmost 参数指定是否置顶显示  
@absolute 参数指定 trackPopup 方法是否使用绝对坐标（禁用自动调整）

## NMTTCUSTOMDRAWObject 成员列表 <a id="NMTTCUSTOMDRAWObject" href="#NMTTCUSTOMDRAWObject">&#x23;</a>

### NMTTCUSTOMDRAWObject.drawFlags <a id="NMTTCUSTOMDRAWObject.drawFlags" href="#NMTTCUSTOMDRAWObject.drawFlags">&#x23;</a>
提示文本显示格式  
此属性会用于 ::DrawText 的 uFormat 参数

### NMTTCUSTOMDRAWObject.dwDrawStage <a id="NMTTCUSTOMDRAWObject.dwDrawStage" href="#NMTTCUSTOMDRAWObject.dwDrawStage">&#x23;</a>
绘图状态

### NMTTCUSTOMDRAWObject.dwItemSpec <a id="NMTTCUSTOMDRAWObject.dwItemSpec" href="#NMTTCUSTOMDRAWObject.dwItemSpec">&#x23;</a>
行序号

### NMTTCUSTOMDRAWObject.hdc <a id="NMTTCUSTOMDRAWObject.hdc" href="#NMTTCUSTOMDRAWObject.hdc">&#x23;</a>
设置句柄

### NMTTCUSTOMDRAWObject.hdr <a id="NMTTCUSTOMDRAWObject.hdr" href="#NMTTCUSTOMDRAWObject.hdr">&#x23;</a>
[返回对象:nmhdrObject](#nmhdrObject)

### NMTTCUSTOMDRAWObject.lItemlParam <a id="NMTTCUSTOMDRAWObject.lItemlParam" href="#NMTTCUSTOMDRAWObject.lItemlParam">&#x23;</a>
自定义数据，LPARAM 参数

### NMTTCUSTOMDRAWObject.rc <a id="NMTTCUSTOMDRAWObject.rc" href="#NMTTCUSTOMDRAWObject.rc">&#x23;</a>
[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### NMTTCUSTOMDRAWObject.uItemState <a id="NMTTCUSTOMDRAWObject.uItemState" href="#NMTTCUSTOMDRAWObject.uItemState">&#x23;</a>
状态值，例如 _CDIS_FOCUS

### NMTTCUSTOMDRAWObject.update() <a id="NMTTCUSTOMDRAWObject.update" href="#NMTTCUSTOMDRAWObject.update">&#x23;</a>
更新数据

## win.ui 成员列表 <a id="win.ui" href="#win.ui">&#x23;</a>

### win.ui.tooltip() <a id="win.ui.tooltip" href="#win.ui.tooltip">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### win.ui.tooltip(所有者窗体,创建参数表) <a id="win.ui.tooltip" href="#win.ui.tooltip">&#x23;</a>
创建提示控件，参数 @1 可选指定所有者窗体对象或句柄。  
参数 @2 可选使用一个表对象指定创建选项与样式，支持以下字段（每个都是可选的）：  
- track: 添加提示时是否默认添加 _TTF_TRACK 选项（手动控制显示与隐藏）。  
- absolute: 添加提示时是否默认添加 _TTF_ABSOLUTE 选项。  
指定 _TTF_ABSOLUTE 则 trackPopup 方法的显示在指定的坐标而不会自动调整。  
此字段为 true 时 track 字段也会自动设为 true。  
- close: 是否显示关闭按钮，设为 true 时 balloon 与 track 字段自动设为 true  
- balloon: 是否显示为汽泡提示。  
- maxTipWidth: 最大宽度。  
- topmost: 是否置顶显示  
- style: 指定窗口样式的数值，总是自动指定 _WS_POPUP   
- exstyle: 指定窗口扩展样式的数值，总是自动指定 _WS_EX_TOOLWINDOW

### win.ui.tooltip(所有者窗体,提示控件句柄) <a id="win.ui.tooltip" href="#win.ui.tooltip">&#x23;</a>
绑定现有提示控件,  
参数@1可选指定所有者窗体对象或所有者窗体句柄，  
参数@2指定现有提示控件句柄

## winUiTooltipInfoObject 成员列表 <a id="winUiTooltipInfoObject" href="#winUiTooltipInfoObject">&#x23;</a>

### winUiTooltipInfoObject.ctrl <a id="winUiTooltipInfoObject.ctrl" href="#winUiTooltipInfoObject.ctrl">&#x23;</a>
创建提示绑定的控件对象  

[返回对象:staticObject](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/ctrl/static.html#staticObject)

### winUiTooltipInfoObject.delete() <a id="winUiTooltipInfoObject.delete" href="#winUiTooltipInfoObject.delete">&#x23;</a>
删除提示

### winUiTooltipInfoObject.getText() <a id="winUiTooltipInfoObject.getText" href="#winUiTooltipInfoObject.getText">&#x23;</a>
返回提示文本

### winUiTooltipInfoObject.sendMessage() <a id="winUiTooltipInfoObject.sendMessage" href="#winUiTooltipInfoObject.sendMessage">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipInfoObject.sendMessage(msg,wParam) <a id="winUiTooltipInfoObject.sendMessage" href="#winUiTooltipInfoObject.sendMessage">&#x23;</a>
发送消息，用法参考此函数源码  
此函数返回自身

### winUiTooltipInfoObject.setText() <a id="winUiTooltipInfoObject.setText" href="#winUiTooltipInfoObject.setText">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipInfoObject.setText(text) <a id="winUiTooltipInfoObject.setText" href="#winUiTooltipInfoObject.setText">&#x23;</a>
设置文本  
如果值不是-1或指针则调用 tostring 函数转换为字符串,  
@text参数指定要更新的提示文本,  
提示必须有文本，否则不会显示,  
此函数返回自身

### winUiTooltipInfoObject.trackPopup <a id="winUiTooltipInfoObject.trackPopup" href="#winUiTooltipInfoObject.trackPopup">&#x23;</a>
弹出提示。  
适用于手动跟踪模式 TOOLINFO 对象（启用了 _TTF_TRACK 选项）

### winUiTooltipInfoObject.trackPopup() <a id="winUiTooltipInfoObject.trackPopup" href="#winUiTooltipInfoObject.trackPopup">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipInfoObject.trackPopup(false) <a id="winUiTooltipInfoObject.trackPopup" href="#winUiTooltipInfoObject.trackPopup">&#x23;</a>
隐藏弹出的提示

### winUiTooltipInfoObject.trackPopup(text,x,y) <a id="winUiTooltipInfoObject.trackPopup" href="#winUiTooltipInfoObject.trackPopup">&#x23;</a>
弹出参数 @text 指定文本内容的提示。  
可选用 x,y 参数指定屏幕显示坐标,不指定则取最后一次鼠标消息屏幕坐标。  

指定 _TTF_ABSOLUTE 选项的提示 x,y 为显示坐标，否则以 x,y 为关联坐标自动调整显示位置。  
注意 x,y 始终使用屏幕坐标系，_TTF_ABSOLUTE 并不改变坐标系。  
此函数返回自身

### winUiTooltipInfoObject.trackPopup(true,x,y) <a id="winUiTooltipInfoObject.trackPopup" href="#winUiTooltipInfoObject.trackPopup">&#x23;</a>
弹出提示。  
可选用 x,y 参数指定屏幕显示坐标,不指定则取最后一次鼠标消息屏幕坐标。  

指定 _TTF_ABSOLUTE 选项的提示 x,y 为显示坐标，否则以 x,y 为关联坐标自动调整显示位置。  
注意 x,y 始终使用屏幕坐标系，_TTF_ABSOLUTE 并不改变坐标系。  
此函数返回自身

### winUiTooltipInfoObject.updateRect() <a id="winUiTooltipInfoObject.updateRect" href="#winUiTooltipInfoObject.updateRect">&#x23;</a>
修改 rect 字段指定的提示矩形区域后必须调用此函数更新  
可选在参数中指定新的 ::RECT 对象,  
此函数返回自身

[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

## winUiTooltipObject 成员列表 <a id="winUiTooltipObject" href="#winUiTooltipObject">&#x23;</a>

### winUiTooltipObject.activate(false) <a id="winUiTooltipObject.activate" href="#winUiTooltipObject.activate">&#x23;</a>
停用提示控件,相当于禁用提示,  
提示控件在非活动状态时,即使鼠标指针位于绑定的控件窗口上也不会出现提示

### winUiTooltipObject.activate(true) <a id="winUiTooltipObject.activate" href="#winUiTooltipObject.activate">&#x23;</a>
激活提示控件

### winUiTooltipObject.add() <a id="winUiTooltipObject.add" href="#winUiTooltipObject.add">&#x23;</a>
批量添加控件提示  
参数应使用一个表指定多个控件的提示文本,  
表成员的键为控件名,值为控件提示

### winUiTooltipObject.addTool <a id="winUiTooltipObject.addTool" href="#winUiTooltipObject.addTool">&#x23;</a>
创建并返回 TOOLINFO 对象,  
提示控件与绑定控件应在同一线程中

### winUiTooltipObject.addTool() <a id="winUiTooltipObject.addTool" href="#winUiTooltipObject.addTool">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.addTool(ctrl,text,flags) <a id="winUiTooltipObject.addTool" href="#winUiTooltipObject.addTool">&#x23;</a>
创建并返回默认 TOOLINFO 对象,  
@ctrl参数指定控件对象,省略则设为提示控件所有窗口  
同一窗口在同一提示控件里只能绑定同一个TOOLTIP,  
如果窗口之前添加了提示会先删除之前的再添加,  
@flags为_TTF_前缀常量组合

### winUiTooltipObject.addTrackingTool <a id="winUiTooltipObject.addTrackingTool" href="#winUiTooltipObject.addTrackingTool">&#x23;</a>
创建手动跟踪模式的 TOOLINFO 对象，  
可使用 trackPopup 函数在指定坐标显示，  
如果提示控件指定所有窗口并设置标题、启用关闭按钮则可支持超链接

### winUiTooltipObject.addTrackingTool() <a id="winUiTooltipObject.addTrackingTool" href="#winUiTooltipObject.addTrackingTool">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.addTrackingTool(ctrl,text,flags) <a id="winUiTooltipObject.addTrackingTool" href="#winUiTooltipObject.addTrackingTool">&#x23;</a>
创建手动跟踪模式的 TOOLINFO 对象。  
此提示默认添加 _TTF_TRACK 选项，必须使用 trackPopup 函数控制显示或隐藏。  
- 可选用 @ctrl 参数指定一个关联控件,省略则设为提示控件所有窗口。   
如果同一窗口之前添加了提示会先删除之前的再添加。  
如果未指定 @ctrl 参数则默认添加 _TTF_ABSOLUTE 选项。  
- 可选用 @text 参数指定显示文本,支持超链接。  
嵌入超链接格式:`<a href="https://www.aardio.com">超链接</a>`,  
- @flags为可选参数,可指定 _TTF_ 前缀常量组合的数值

### winUiTooltipObject.adjustRect <a id="winUiTooltipObject.adjustRect" href="#winUiTooltipObject.adjustRect">&#x23;</a>
对工具提示控件的文本显示矩形与其窗口矩形之间进行自适应转换

### winUiTooltipObject.adjustRect() <a id="winUiTooltipObject.adjustRect" href="#winUiTooltipObject.adjustRect">&#x23;</a>
[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### winUiTooltipObject.adjustRect(rc,false) <a id="winUiTooltipObject.adjustRect" href="#winUiTooltipObject.adjustRect">&#x23;</a>
参数 @rc 必须是一个指定窗口矩形的 ::RECT 结构  
调整该结构体为相应的文本显示矩形,并返回该结构体

### winUiTooltipObject.adjustRect(rc,true) <a id="winUiTooltipObject.adjustRect" href="#winUiTooltipObject.adjustRect">&#x23;</a>
参数 @rc 必须是一个指定文本显示的矩形的 ::RECT 结构  
调整该结构体为相应的窗口矩形,并返回该结构体

### winUiTooltipObject.capture <a id="winUiTooltipObject.capture" href="#winUiTooltipObject.capture">&#x23;</a>
是否捕获全局鼠标消息  

winex.tooltip 对象如果在调用 trackPopup 后设置此属性为 true，  
则支持点击自动隐藏提示

### winUiTooltipObject.close() <a id="winUiTooltipObject.close" href="#winUiTooltipObject.close">&#x23;</a>
关闭提示控件

### winUiTooltipObject.defaultFlags <a id="winUiTooltipObject.defaultFlags" href="#winUiTooltipObject.defaultFlags">&#x23;</a>
添加提示的默认选项，根据创建参数表自动设置。  
defaultFlags 指定 _TTF_TRACK 则为手动控制显示与隐藏提示。  
defaultFlags 指定 _TTF_SUBCLASS 则为自动显示与隐藏提示。  
调用 addTool 方法且显式指定 flags 参数时忽略默认选项。

### winUiTooltipObject.delTool(ctrl) <a id="winUiTooltipObject.delTool" href="#winUiTooltipObject.delTool">&#x23;</a>
删除提示  
参数@1请使用窗口控件对象,  
如果控件尚未添加提示则忽略不操作

### winUiTooltipObject.delTool(toolInfo) <a id="winUiTooltipObject.delTool" href="#winUiTooltipObject.delTool">&#x23;</a>
删除提示  
参数@1请使用addTool函数的返回值

### winUiTooltipObject.getClientRect() <a id="winUiTooltipObject.getClientRect" href="#winUiTooltipObject.getClientRect">&#x23;</a>
控件客户区块位置(::RECT结构体)  

[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### winUiTooltipObject.getCurrentTool() <a id="winUiTooltipObject.getCurrentTool" href="#winUiTooltipObject.getCurrentTool">&#x23;</a>
返回提示控件当前正在使用的 TOOLINFO 对象  

[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.getFont() <a id="winUiTooltipObject.getFont" href="#winUiTooltipObject.getFont">&#x23;</a>
控件字体(::LOGFONT结构体)  

[返回对象:logfontObject](#logfontObject)

### winUiTooltipObject.getNotifyCustomDraw() <a id="winUiTooltipObject.getNotifyCustomDraw" href="#winUiTooltipObject.getNotifyCustomDraw">&#x23;</a>
[返回对象:NMTTCUSTOMDRAWObject](#NMTTCUSTOMDRAWObject)

### winUiTooltipObject.getNotifyCustomDraw(code,ptr) <a id="winUiTooltipObject.getNotifyCustomDraw" href="#winUiTooltipObject.getNotifyCustomDraw">&#x23;</a>
NM_CUSTOMDRAW通知消息返回NMLVCUSTOMDRAW结构体

### winUiTooltipObject.getParent() <a id="winUiTooltipObject.getParent" href="#winUiTooltipObject.getParent">&#x23;</a>
返回父窗口  

[返回对象:winform](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/_.html#winform)

### winUiTooltipObject.getPos() <a id="winUiTooltipObject.getPos" href="#winUiTooltipObject.getPos">&#x23;</a>
返回相对父窗口客户区的坐标,宽,高,  
参数为true返回屏幕坐标,宽,高,  
x,y,cx,cy=win.getPos(hwnd)

### winUiTooltipObject.getRect() <a id="winUiTooltipObject.getRect" href="#winUiTooltipObject.getRect">&#x23;</a>
控件区块位置(::RECT结构体)

[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### winUiTooltipObject.getRect(true) <a id="winUiTooltipObject.getRect" href="#winUiTooltipObject.getRect">&#x23;</a>
控件屏幕区块位置(::RECT结构体)

### winUiTooltipObject.getRoot() <a id="winUiTooltipObject.getRoot" href="#winUiTooltipObject.getRoot">&#x23;</a>
获取顶层父窗口

### winUiTooltipObject.getTool() <a id="winUiTooltipObject.getTool" href="#winUiTooltipObject.getTool">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.getTool(ctrl) <a id="winUiTooltipObject.getTool" href="#winUiTooltipObject.getTool">&#x23;</a>
参数指定控件对象  
返回该控件关联的TOOLINFO结构体  
不指定参数返回最后一次添加的TOOLINFO结构体

### winUiTooltipObject.lastToolInfo <a id="winUiTooltipObject.lastToolInfo" href="#winUiTooltipObject.lastToolInfo">&#x23;</a>
最后一次添加的提示结构体  

[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.lastTrackingToolInfo <a id="winUiTooltipObject.lastTrackingToolInfo" href="#winUiTooltipObject.lastTrackingToolInfo">&#x23;</a>
最后一次添加的手动跟踪模式提示结构体  

[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.modifyStyle(remove,add,swpFlags) <a id="winUiTooltipObject.modifyStyle" href="#winUiTooltipObject.modifyStyle">&#x23;</a>
修改窗口样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### winUiTooltipObject.modifyStyleEx(remove,add,swpFlags) <a id="winUiTooltipObject.modifyStyleEx" href="#winUiTooltipObject.modifyStyleEx">&#x23;</a>
修改窗口扩展样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_EX_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_EX_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### winUiTooltipObject.onnotify <a id="winUiTooltipObject.onnotify" href="#winUiTooltipObject.onnotify">&#x23;</a>

```aardio
winUiTooltipObject.onnotify = function(id,code,ptr){  
	/*通知事件触发*/  
}
```

### winUiTooltipObject.popup(false) <a id="winUiTooltipObject.popup" href="#winUiTooltipObject.popup">&#x23;</a>
隐藏提示  
不触发onPopupHide

### winUiTooltipObject.postMessage(msg,wParam,lParam) <a id="winUiTooltipObject.postMessage" href="#winUiTooltipObject.postMessage">&#x23;</a>
投递窗口消息到消息队列中  
此函数用法请参考 ::User32.PostMessage

### winUiTooltipObject.ptInClientRect <a id="winUiTooltipObject.ptInClientRect" href="#winUiTooltipObject.ptInClientRect">&#x23;</a>
判断指定的坐标是否在客户区内

### winUiTooltipObject.ptInClientRect(lParam) <a id="winUiTooltipObject.ptInClientRect" href="#winUiTooltipObject.ptInClientRect">&#x23;</a>
使用窗口消息回调函数的 lParam 参数获取 x,y 坐标，  
如果 x,y 坐标在客户区内返回 true

### winUiTooltipObject.ptInClientRect(x,y) <a id="winUiTooltipObject.ptInClientRect" href="#winUiTooltipObject.ptInClientRect">&#x23;</a>
x,y 坐标是否在客户区内

### winUiTooltipObject.redraw() <a id="winUiTooltipObject.redraw" href="#winUiTooltipObject.redraw">&#x23;</a>
刷新

### winUiTooltipObject.sendMessage(msg,wParam,lParam) <a id="winUiTooltipObject.sendMessage" href="#winUiTooltipObject.sendMessage">&#x23;</a>
发送窗口消息  
此函数用法请参考 ::User32.SendMessage

### winUiTooltipObject.setBkColor(颜色值) <a id="winUiTooltipObject.setBkColor" href="#winUiTooltipObject.setBkColor">&#x23;</a>
设置背景颜色

### winUiTooltipObject.setDelayTime(超时值,选项) <a id="winUiTooltipObject.setDelayTime" href="#winUiTooltipObject.setDelayTime">&#x23;</a>
光标在控件上悬停并超出一定时间才会显示,  
默认值约为半秒，此函数可修改默认的超时值  
以毫秒为单位,  
选项为可选参数,默认为 0/*_TTDT_AUTOMATIC*/

### winUiTooltipObject.setError() <a id="winUiTooltipObject.setError" href="#winUiTooltipObject.setError">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### winUiTooltipObject.setError(title,large) <a id="winUiTooltipObject.setError" href="#winUiTooltipObject.setError">&#x23;</a>
设置@title参数指定的标题,并显示错误图标,  
可选用@large指定是否使用大图标

### winUiTooltipObject.setFont(指定字体) <a id="winUiTooltipObject.setFont" href="#winUiTooltipObject.setFont">&#x23;</a>
指定LOGFONT字体对象,或逻辑字体句柄

### winUiTooltipObject.setFont(混入字体属性) <a id="winUiTooltipObject.setFont" href="#winUiTooltipObject.setFont">&#x23;</a>

```aardio
winUiTooltipObject.setFont(point=10;name="宋体");
```

### winUiTooltipObject.setInfo() <a id="winUiTooltipObject.setInfo" href="#winUiTooltipObject.setInfo">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### winUiTooltipObject.setInfo(title,large) <a id="winUiTooltipObject.setInfo" href="#winUiTooltipObject.setInfo">&#x23;</a>
设置@title参数指定的标题,并显示信息图标,  
可选用@large指定是否使用大图标

### winUiTooltipObject.setMaxWidth(宽度) <a id="winUiTooltipObject.setMaxWidth" href="#winUiTooltipObject.setMaxWidth">&#x23;</a>
设置提示框最大宽度

### winUiTooltipObject.setPos(x坐标,y坐标,宽,高,插入位置,参数) <a id="winUiTooltipObject.setPos" href="#winUiTooltipObject.setPos">&#x23;</a>
调整窗口位置或排序,所有参数可选  
同时指定x,y坐标则移动位置  
同时指定宽高则改变大小  
指定插入位置(句柄或_HWND前缀常量)则调整Z序

### winUiTooltipObject.setRect(rc) <a id="winUiTooltipObject.setRect" href="#winUiTooltipObject.setRect">&#x23;</a>
设置控件区块位置(::RECT结构体)

### winUiTooltipObject.setRect(rc,true) <a id="winUiTooltipObject.setRect" href="#winUiTooltipObject.setRect">&#x23;</a>
设置控件屏幕区块位置(::RECT结构体)

### winUiTooltipObject.setText() <a id="winUiTooltipObject.setText" href="#winUiTooltipObject.setText">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.setText(text,ctrlOrToolInfo) <a id="winUiTooltipObject.setText" href="#winUiTooltipObject.setText">&#x23;</a>
更新提示文本,  
提示必须有文本，否则不会显示,  
addTrackingTool 函数创建的提示支持超链接,  
提示文本中嵌入超链接格式<a href="https://www.aardio.com">超链接</a>,  
可选用参数@ctrlOrToolInfo指定控件或TOOLINFO结构体,  
如果不指定则默认使用最后一次添加的TOOLINFO结构体,  
成功返回TOOLINFO结构体

### winUiTooltipObject.setTextColor(颜色值) <a id="winUiTooltipObject.setTextColor" href="#winUiTooltipObject.setTextColor">&#x23;</a>
设置文本颜色

### winUiTooltipObject.setTitle() <a id="winUiTooltipObject.setTitle" href="#winUiTooltipObject.setTitle">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### winUiTooltipObject.setTitle(title,icon) <a id="winUiTooltipObject.setTitle" href="#winUiTooltipObject.setTitle">&#x23;</a>
设置@title参数指定的标题,  
可选用@icon参数指定图标句柄,  
工具有标题才会显示图标,  
只设置标题不设置文本则不会显示

### winUiTooltipObject.setWarning() <a id="winUiTooltipObject.setWarning" href="#winUiTooltipObject.setWarning">&#x23;</a>
[返回对象:winUiTooltipObject](#winUiTooltipObject)

### winUiTooltipObject.setWarning(title,large) <a id="winUiTooltipObject.setWarning" href="#winUiTooltipObject.setWarning">&#x23;</a>
设置@title参数指定的标题,并显示警告图标,  
可选用@large指定是否使用大图标

### winUiTooltipObject.show(true) <a id="winUiTooltipObject.show" href="#winUiTooltipObject.show">&#x23;</a>
显示控件

### winUiTooltipObject.text <a id="winUiTooltipObject.text" href="#winUiTooltipObject.text">&#x23;</a>
当前显示文本,  
包含提示标题与内容,  
此属性只读,

### winUiTooltipObject.trackPopup <a id="winUiTooltipObject.trackPopup" href="#winUiTooltipObject.trackPopup">&#x23;</a>
此函数调用最后一次创建的手动跟踪模式 TOOLINFO 对象（启用了 _TTF_TRACK 选项）。  
这指的是在调用此函数以前执行过以下操作（其中之一）：  
1、调用 addTrackingTool 函数  
2、win.ui.tooltip.tracking 创建的提示控件调用以默认 flags 创建提示的部分函数  
这包括 addTool, setText 等函数  

注意调用此函数显示的提示提示默认不会自动隐藏，  
winex.tooltip 在调用此函数后设置 capture 为 true 支持点击隐藏

### winUiTooltipObject.trackPopup() <a id="winUiTooltipObject.trackPopup" href="#winUiTooltipObject.trackPopup">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.trackPopup(false) <a id="winUiTooltipObject.trackPopup" href="#winUiTooltipObject.trackPopup">&#x23;</a>
隐藏弹出的提示

### winUiTooltipObject.trackPopup(text,x,y) <a id="winUiTooltipObject.trackPopup" href="#winUiTooltipObject.trackPopup">&#x23;</a>
弹出参数 @text 指定文本内容的提示。  
可选用 x,y 参数指定屏幕显示坐标,不指定则取最后一次鼠标消息屏幕坐标。  
指定 _TTF_ABSOLUTE 选项的提示 x,y 为显示坐标，否则以 x,y 为关联坐标自动调整显示位置。  
注意 x,y 始终使用屏幕坐标系，_TTF_ABSOLUTE 并不改变坐标系。  
此函数返回显示的 TOOLINFO 对象

### winUiTooltipObject.trackPopup(true,x,y) <a id="winUiTooltipObject.trackPopup" href="#winUiTooltipObject.trackPopup">&#x23;</a>
弹出提示。  
可选用 x,y 参数指定屏幕显示坐标,不指定则取最后一次鼠标消息屏幕坐标。  
指定 _TTF_ABSOLUTE 选项的提示 x,y 为显示坐标，否则以 x,y 为关联坐标自动调整显示位置。  
注意 x,y 始终使用屏幕坐标系，_TTF_ABSOLUTE 并不改变坐标系。  
此函数返回显示的 TOOLINFO 对象

### winUiTooltipObject.trackPos() <a id="winUiTooltipObject.trackPos" href="#winUiTooltipObject.trackPos">&#x23;</a>
[返回对象:winUiTooltipInfoObject](#winUiTooltipInfoObject)

### winUiTooltipObject.trackPos(x,y) <a id="winUiTooltipObject.trackPos" href="#winUiTooltipObject.trackPos">&#x23;</a>
移动到指定坐标,  
省略参数是移动到最后一次处理鼠标消息的坐标,  
请使用trackPopup函数控制显示和隐藏  
此函数返回自身

### winUiTooltipObject.update() <a id="winUiTooltipObject.update" href="#winUiTooltipObject.update">&#x23;</a>
刷新

### winUiTooltipObject.wait(等待函数,超时,延时间隔) <a id="winUiTooltipObject.wait" href="#winUiTooltipObject.wait">&#x23;</a>
循环执行等待函数，并等待非 null 返回值。  
当等待函数的第 1,第 2 个返回值不全等于 null 值，或当前控件窗口关闭都会停止等待。  
等待函数返回的值也就是 wait 函数的返回值（最多转发 3 个返回值）。  
如果指定超时，超过指定毫秒时返回 null 。  
除等待函数以外，所有参数可选

### winUiTooltipObject.waitUntil(等待函数,超时,延时间隔) <a id="winUiTooltipObject.waitUntil" href="#winUiTooltipObject.waitUntil">&#x23;</a>
循环执行等待函数，并等待返回真值（Truthy）。  
当等待函数的首个返回值为真值（Truthy） ，或当前控件窗口关闭都会停止等待。  
等待函数首个返回值也就是 waitUntil 函数的返回值（仅返回单个值）。  
如果指定超时，超过指定毫秒时返回 null 。  
除等待函数以外，所有参数可选

### winUiTooltipObject.wndproc <a id="winUiTooltipObject.wndproc" href="#winUiTooltipObject.wndproc">&#x23;</a>

```aardio
winUiTooltipObject.wndproc = function(hwnd,message,wParam,lParam){  
	/*窗口消息回调，返回任意非null值阻止默认回调  
wndproc重复赋值时追加函数而不是覆盖之前的回调  
设为null添除所有消息回调函数  
wndproc也可以是一个表,键要为处理的消息,值为对应的消息回调函数*/	  
}
```

## winUiTooltipObject 事件列表 <a id="winUiTooltipObjectEvent" href="#winUiTooltipObjectEvent">&#x23;</a>

### winUiTooltipObject.onDestroy <a id="winUiTooltipObject.onDestroy" href="#winUiTooltipObject.onDestroy">&#x23;</a>

```aardio
winUiTooltipObject.onDestroy = function(){  
	/*窗口销毁前触发*/  
}
```

### winUiTooltipObject.onHyperlinkClick(href,title) <a id="winUiTooltipObject.onHyperlinkClick" href="#winUiTooltipObject.onHyperlinkClick">&#x23;</a>

```aardio
winUiTooltipObject.onHyperlinkClick = function(href,title){
	/*点击了超链接,  
@href 为链接地址,@title 参数为超链接包含文本,  
提示文本中嵌入超链接格式<a href="https://www.aardio.com">超链接</a>  
一个提示里只能写一个超链接,不要写多个*/	
}
```

### winUiTooltipObject.onPopupHide() <a id="winUiTooltipObject.onPopupHide" href="#winUiTooltipObject.onPopupHide">&#x23;</a>

```aardio
winUiTooltipObject.onPopupHide = function(){
	/*隐藏提示触发此通知。  

父窗口不是 win.form 对象则此事件不可用，  
替代方法是在此控件的 wndproc 回调中处理 _WM_SHOWWINDOW 消息*/	
}
```

### winUiTooltipObject.onPopupShow() <a id="winUiTooltipObject.onPopupShow" href="#winUiTooltipObject.onPopupShow">&#x23;</a>

```aardio
winUiTooltipObject.onPopupShow = function(){
	/*显示提示触发此通知。  

父窗口不是 win.form 对象则此事件不可用，  
替代方法是在此控件的 wndproc 回调中处理 _WM_SHOWWINDOW 消息*/	
}
```

### 自动完成常量
_TTF_ABSOLUTE=0x80  
_TTF_CENTERTIP=2  
_TTF_DI_SETITEM=0x8000  
_TTF_IDISHWND=1  
_TTF_PARSELINKS=0x1000  
_TTF_RTLREADING=4  
_TTF_TRACK=0x20  
_TTF_TRANSPARENT=0x100  
_TTN_FIRST=0xFFFFFDF8  
_TTN_GETDISPINFO=0xFFFFFDF8  
_TTN_LAST=0xFFFFFFCA  
_TTN_LINKCLICK=0xFFFFFDF5  
_TTN_NEEDTEXT=0xFFFFFDF8  
_TTN_POP=0xFFFFFDF6  
_TTN_SHOW=0xFFFFFDF7  
_TTS_ALWAYSTIP=1  
_TTS_BALLOON=0x40  
_TTS_CLOSE=0x80  
_TTS_NOANIMATE=0x10  
_TTS_NOFADE=0x20  
_TTS_NOPREFIX=2  
