# win.ui.ctrl.bkplus 库模块帮助文档

<details>  <summary>更多绘图样式与选项</summary>  <p>
[plus 控件](https://www.aardio.com/zh-cn/doc/library-guide/std/win/ui/ctrl/plus.html)调用 directDrawBackgroundOnly 函数也可以转换为背景贴图控件，
不但可以像 bk,bkplus 控件那样直接在窗体背景上绘图，而且支持更多的绘图样式与选项。
bk,bkplus 控件的实现则更简单轻量，功能也相对简单且不支持交互事件。
</p></details>

## win.ui.ctrl 成员列表 <a id="win.ui.ctrl" href="#win.ui.ctrl">&#x23;</a>

### win.ui.ctrl.bkplus() <a id="win.ui.ctrl.bkplus" href="#win.ui.ctrl.bkplus">&#x23;</a>
无窗口控件（无句柄），仅用于背景贴图（不支持交互事件）。  
基于 gdip（GDI+），支持透明 png 图像。  
直接输出颜色或图像到窗口背景图缓存，  
因为不需要创建窗口可避免前后叠加控件且处理不当产生的闪烁，  
适合显示静态、不会频繁变动的图像或颜色。  

plus 控件也可通过  
调用 directDrawBackgroundOnly 函数变为背景绘图控件。  

[返回对象:winuictrlbkplusObject](#winuictrlbkplusObject)

## winuictrlbkplusObject 成员列表 <a id="winuictrlbkplusObject" href="#winuictrlbkplusObject">&#x23;</a>

### winuictrlbkplusObject.argbColor <a id="winuictrlbkplusObject.argbColor" href="#winuictrlbkplusObject.argbColor">&#x23;</a>
ARGB格式颜色数值,用于文本输出

### winuictrlbkplusObject.background <a id="winuictrlbkplusObject.background" href="#winuictrlbkplusObject.background">&#x23;</a>
设置背景图像或背景颜色。  
设置背景图像时支持 jpg,gif,png 等格式图像路径或内存数据，支持 gdip.bitmap 对象。  
设置背景颜色支持 0xAARRGGBB 格式颜色数值（ARGB 格式）。  
通过此属性修改背景颜色会自动删除之前指定的背景图像。  
修改此属性后会自动重绘，而通过 backgroundColor 属性修改背景色不会自动重绘。  

读取此属性时，即使未指定背景图像，也不会返回背景颜色值，  
应改用 backgroundColor 属性获取背景颜色值。

### winuictrlbkplusObject.backgroundColor <a id="winuictrlbkplusObject.backgroundColor" href="#winuictrlbkplusObject.backgroundColor">&#x23;</a>
背景颜色， 0xAARRGGBB 格式颜色数值（ARGB 格式）  
直接修改这个属性时不会重绘控件。  
也不会删除通过 background 属性指定的背景图像。  

bk,bkplus 是无句柄控件，可以任意前后叠加多个 bk,bkplus 控件。

### winuictrlbkplusObject.border <a id="winuictrlbkplusObject.border" href="#winuictrlbkplusObject.border">&#x23;</a>
边框与圆角属性，表对象或 null 值。  
表对象可指定 radius,width,color 字段。  

相比 plus 控件，bkplus 的 border 属性有以下限制：  
启用渐变后无效，圆角仅对纯色背景有效。  
不支持用 left,top,right,bottom 单独指定各边框

### winuictrlbkplusObject.close() <a id="winuictrlbkplusObject.close" href="#winuictrlbkplusObject.close">&#x23;</a>
关闭控件。

### winuictrlbkplusObject.foreground <a id="winuictrlbkplusObject.foreground" href="#winuictrlbkplusObject.foreground">&#x23;</a>
设置前景图像或前景颜色。  
设置前景图像时支持 jpg,gif,png 等格式图像路径或内存数据，支持 gdip.bitmap 对象。  
设置前景颜色支持 0xAARRGGBB 格式颜色数值（ARGB 格式）。  
修改此属性后会自动重绘，通过 foregroundColor 属性修改前景色不会自动重绘。  

读取此属性时，即使未指定前景图像，也不会返回前景颜色值，  
应改用 foregroundColor 属性获取前景颜色值。

### winuictrlbkplusObject.foregroundColor <a id="winuictrlbkplusObject.foregroundColor" href="#winuictrlbkplusObject.foregroundColor">&#x23;</a>
前景颜色， 0xAARRGGBB 格式颜色数值（ARGB 格式）  
直接修改这个属性时不会重绘控件。  
也不会删除通过 foreground 属性指定的前景图像。  

bk,bkplus 是无句柄控件，可以任意前后叠加多个 bk,bkplus 控件。

### winuictrlbkplusObject.getPos() <a id="winuictrlbkplusObject.getPos" href="#winuictrlbkplusObject.getPos">&#x23;</a>
返回 `x,y,cx,cy` 等 4 个值。  
`x,y`为控件坐标，`cx,cy` 为控件宽、高。

### winuictrlbkplusObject.hide <a id="winuictrlbkplusObject.hide" href="#winuictrlbkplusObject.hide">&#x23;</a>
当前控件是否隐藏  

以 `.` 前导的 `.hide()` 作为成员函数被调用时，  
作用等价于将 hide 属性设为 null 。

### winuictrlbkplusObject.interpolationMode <a id="winuictrlbkplusObject.interpolationMode" href="#winuictrlbkplusObject.interpolationMode">&#x23;</a>
图像缩放时的默认插值模式,  
默认值为_GdipInterpolationModeHighQualityBicubic

### winuictrlbkplusObject.linearGradient <a id="winuictrlbkplusObject.linearGradient" href="#winuictrlbkplusObject.linearGradient">&#x23;</a>
使用此属性指定线性渐变的方向角度,负数值表示使用径向渐变,  
必须同时指定背景色、前景色才有效，指定图像后此属性无效  
启用渐变后，边框与圆角设置无效。

### winuictrlbkplusObject.paddingBottom <a id="winuictrlbkplusObject.paddingBottom" href="#winuictrlbkplusObject.paddingBottom">&#x23;</a>
前景色下边距

### winuictrlbkplusObject.paddingLeft <a id="winuictrlbkplusObject.paddingLeft" href="#winuictrlbkplusObject.paddingLeft">&#x23;</a>
前景色左边距

### winuictrlbkplusObject.paddingRight <a id="winuictrlbkplusObject.paddingRight" href="#winuictrlbkplusObject.paddingRight">&#x23;</a>
前景色右边距

### winuictrlbkplusObject.paddingTop <a id="winuictrlbkplusObject.paddingTop" href="#winuictrlbkplusObject.paddingTop">&#x23;</a>
前景色上边距

### winuictrlbkplusObject.redraw() <a id="winuictrlbkplusObject.redraw" href="#winuictrlbkplusObject.redraw">&#x23;</a>
刷新,会导致背景窗口重建背景图缓存  
不建议频繁调用

### winuictrlbkplusObject.setPos(x,y,cx,cw) <a id="winuictrlbkplusObject.setPos" href="#winuictrlbkplusObject.setPos">&#x23;</a>
修改控件的 x，y 坐标与宽（cx），高（cw）。  
所有参数可选，不指定的参数则保持原值。  
对于 bk,bkplus 控件此函数不负责重绘。

### winuictrlbkplusObject.show() <a id="winuictrlbkplusObject.show" href="#winuictrlbkplusObject.show">&#x23;</a>
显示窗口。  
参数 @1 为 false 时隐藏窗口。

### winuictrlbkplusObject.smoothingMode <a id="winuictrlbkplusObject.smoothingMode" href="#winuictrlbkplusObject.smoothingMode">&#x23;</a>
绘图画布默认抗锯齿模式,  
默认值为_GdipSmoothingModeAntiAlias

### winuictrlbkplusObject.textRenderingHint <a id="winuictrlbkplusObject.textRenderingHint" href="#winuictrlbkplusObject.textRenderingHint">&#x23;</a>

```aardio
winuictrlbkplusObject.textRenderingHint = _GdipTextRenderingHint ;
```

## winuictrlbkplusObject 事件列表 <a id="winuictrlbkplusObjectEvent" href="#winuictrlbkplusObjectEvent">&#x23;</a>

### winuictrlbkplusObject.onDrawBackground <a id="winuictrlbkplusObject.onDrawBackground" href="#winuictrlbkplusObject.onDrawBackground">&#x23;</a>

```aardio
winuictrlbkplusObject.onDrawBackground(hdc,rc){
	/*背景绘图以后触发此回调,  
hdc为当前绘图设备句柄,rc为控件位置*/
}
```

### winuictrlbkplusObject.onDrawString <a id="winuictrlbkplusObject.onDrawString" href="#winuictrlbkplusObject.onDrawString">&#x23;</a>

```aardio
winuictrlbkplusObject.onDrawString = function(graphics,text,font,rectf,strformat,brush){
    /*自定义输出文本,请不要删除传入参数中的GDI+对象*/
    graphics.drawString(text,font,rectf,strformat,brush);
}
```

