# win.ui.ctrl.spin 库模块帮助文档

## win.ui.ctrl 成员列表 <a id="win.ui.ctrl" href="#win.ui.ctrl">&#x23;</a>

### win.ui.ctrl.spin() <a id="win.ui.ctrl.spin" href="#win.ui.ctrl.spin">&#x23;</a>
滚动选框控件  

[返回对象:spinbuttonObject](#spinbuttonObject)

## spinbuttonObject 成员列表 <a id="spinbuttonObject" href="#spinbuttonObject">&#x23;</a>

### spinbuttonObject._parentForm <a id="spinbuttonObject._parentForm" href="#spinbuttonObject._parentForm">&#x23;</a>
返回创建控件的容器窗口（win.form对象），所有窗口控件都拥有此只读属性。  
对于使用窗体设计器创建的窗口，也就是返回设计时窗体容器。  

即使子窗口移除子窗口样式、更改父子关系，或以 orphanWindow显示，  
控件的 _parentForm 始终都不会改变  

[返回对象:winform](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/_.html#winform)

### spinbuttonObject.addCtrl <a id="spinbuttonObject.addCtrl" href="#spinbuttonObject.addCtrl">&#x23;</a>

```aardio
spinbuttonObject.addCtrl(  
	button={ cls="button";text="button";left=33;top=32;right=126;bottom=81;autoResize=false }    
)
```

### spinbuttonObject.base <a id="spinbuttonObject.base" href="#spinbuttonObject.base">&#x23;</a>
显示数值进制基数,10或16

### spinbuttonObject.bottom <a id="spinbuttonObject.bottom" href="#spinbuttonObject.bottom">&#x23;</a>
底部坐标

### spinbuttonObject.buddy <a id="spinbuttonObject.buddy" href="#spinbuttonObject.buddy">&#x23;</a>
设置、获取伙伴窗口。  
伙伴窗口必须是 edit 控件（自动启用限制输入数字）。  
spin 控件可放在 edit 控件内部或外部左侧、右侧。  
调整窗口大小时，spin 控件会自动吸附于 edit 控件左侧或右侧。  

如果 spin 控件在 edit 控件左侧，建议添加 align="left" 属性，  
如果 spin 控件在 edit 控件右侧，建议添加 align="right" 属性  

[返回对象:editObject](https://www.aardio.com/zh-cn/docs/library-reference/win/ui/ctrl/edit.html#editObject)

### spinbuttonObject.capture <a id="spinbuttonObject.capture" href="#spinbuttonObject.capture">&#x23;</a>
是否捕获全局鼠标消息

### spinbuttonObject.className <a id="spinbuttonObject.className" href="#spinbuttonObject.className">&#x23;</a>
运行时类名

### spinbuttonObject.close() <a id="spinbuttonObject.close" href="#spinbuttonObject.close">&#x23;</a>
关闭控件窗口

### spinbuttonObject.cls <a id="spinbuttonObject.cls" href="#spinbuttonObject.cls">&#x23;</a>
设计时类名

### spinbuttonObject.disabled <a id="spinbuttonObject.disabled" href="#spinbuttonObject.disabled">&#x23;</a>
是否禁用

### spinbuttonObject.getClientRect() <a id="spinbuttonObject.getClientRect" href="#spinbuttonObject.getClientRect">&#x23;</a>
控件客户区块位置(::RECT结构体)  

[返回对象:rectObject](https://www.aardio.com/zh-cn/docs/library-reference/global/_.html#rectObject)

### spinbuttonObject.getFont() <a id="spinbuttonObject.getFont" href="#spinbuttonObject.getFont">&#x23;</a>
控件字体(::LOGFONT结构体)  

[返回对象:logfontObject](#logfontObject)

### spinbuttonObject.getParent() <a id="spinbuttonObject.getParent" href="#spinbuttonObject.getParent">&#x23;</a>
返回父窗口  

[返回对象:spinbuttonObject](#spinbuttonObject)

### spinbuttonObject.getPos() <a id="spinbuttonObject.getPos" href="#spinbuttonObject.getPos">&#x23;</a>
返回相对坐标,宽,高

### spinbuttonObject.getRect() <a id="spinbuttonObject.getRect" href="#spinbuttonObject.getRect">&#x23;</a>
控件区块位置(::RECT结构体)

### spinbuttonObject.getRect(true) <a id="spinbuttonObject.getRect" href="#spinbuttonObject.getRect">&#x23;</a>
控件屏幕区块位置(::RECT结构体)

### spinbuttonObject.height <a id="spinbuttonObject.height" href="#spinbuttonObject.height">&#x23;</a>
高度

### spinbuttonObject.hwnd <a id="spinbuttonObject.hwnd" href="#spinbuttonObject.hwnd">&#x23;</a>
控件句柄

### spinbuttonObject.id <a id="spinbuttonObject.id" href="#spinbuttonObject.id">&#x23;</a>
控件ID

### spinbuttonObject.inc <a id="spinbuttonObject.inc" href="#spinbuttonObject.inc">&#x23;</a>
设置步长

### spinbuttonObject.invalidate(/*可选使用::RECT()对象指定客户区*/) <a id="spinbuttonObject.invalidate(/*可选使用::RECT" href="#spinbuttonObject.invalidate(/*可选使用::RECT">&#x23;</a>
使窗口绘图区无效

### spinbuttonObject.invalidate(/*可选使用::RECT()对象指定客户区*/,0) <a id="spinbuttonObject.invalidate(/*可选使用::RECT" href="#spinbuttonObject.invalidate(/*可选使用::RECT">&#x23;</a>
使窗口绘图区无效  
不刷新背景

### spinbuttonObject.left <a id="spinbuttonObject.left" href="#spinbuttonObject.left">&#x23;</a>
左侧坐标

### spinbuttonObject.modifyStyle(remove,add,swpFlags) <a id="spinbuttonObject.modifyStyle" href="#spinbuttonObject.modifyStyle">&#x23;</a>
修改窗口样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### spinbuttonObject.modifyStyleEx(remove,add,swpFlags) <a id="spinbuttonObject.modifyStyleEx" href="#spinbuttonObject.modifyStyleEx">&#x23;</a>
修改窗口扩展样式,所有参数都是可选参数,  
@remove 用数值指定要移除的样式,可使用 _WS_EX_ 前缀的常量  
@add 用数值指定要添加的样式,可使用 _WS_EX_ 前缀的常量  
@swpFlags 可选用数值指定调整窗口选项,可使用 _SWP_ 前缀的常量  
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos  
细节请参考 win.modifyStyle 函数源码

### spinbuttonObject.onnotify <a id="spinbuttonObject.onnotify" href="#spinbuttonObject.onnotify">&#x23;</a>

```aardio
spinbuttonObject.onnotify = function(id,code,ptr){ 
	if(code==0xFFFFFD2E/*_UDN_DELTAPOS*/){
		var nmUpDown = ..raw.convert(ptr, {
			struct hdr = ::NMHDR();
			int pos;
			int delta; 
		} ); 
		/*pos为当前位置,delta为增减量,单击向下箭头此值为负数*/
	} 
}
```

### spinbuttonObject.pos <a id="spinbuttonObject.pos" href="#spinbuttonObject.pos">&#x23;</a>
当前位置数值

### spinbuttonObject.postMessage(msg,wParam,lParam) <a id="spinbuttonObject.postMessage" href="#spinbuttonObject.postMessage">&#x23;</a>
投递窗口消息到消息队列中  
此函数用法请参考 ::User32.PostMessage

### spinbuttonObject.redraw() <a id="spinbuttonObject.redraw" href="#spinbuttonObject.redraw">&#x23;</a>
刷新

### spinbuttonObject.right <a id="spinbuttonObject.right" href="#spinbuttonObject.right">&#x23;</a>
右侧坐标

### spinbuttonObject.sendMessage(msg,wParam,lParam) <a id="spinbuttonObject.sendMessage" href="#spinbuttonObject.sendMessage">&#x23;</a>
发送窗口消息  
此函数用法请参考 ::User32.SendMessage

### spinbuttonObject.setFocus() <a id="spinbuttonObject.setFocus" href="#spinbuttonObject.setFocus">&#x23;</a>
设置焦点

### spinbuttonObject.setFont(指定字体) <a id="spinbuttonObject.setFont" href="#spinbuttonObject.setFont">&#x23;</a>
指定LOGFONT字体对象,或逻辑字体句柄

### spinbuttonObject.setFont(混入字体属性) <a id="spinbuttonObject.setFont" href="#spinbuttonObject.setFont">&#x23;</a>

```aardio
spinbuttonObject.setFont(point=10;name="宋体");
```

### spinbuttonObject.setParent(控件对象) <a id="spinbuttonObject.setParent" href="#spinbuttonObject.setParent">&#x23;</a>
改变父窗口

### spinbuttonObject.setPos(x坐标,y坐标,宽,高,插入位置,参数) <a id="spinbuttonObject.setPos" href="#spinbuttonObject.setPos">&#x23;</a>
调整窗口位置或排序,所有参数可选  
同时指定x,y坐标则移动位置  
同时指定宽高则改变大小  
指定插入位置(句柄或_HWND前缀常量)则调整Z序

### spinbuttonObject.setRange(最小值,最大值) <a id="spinbuttonObject.setRange" href="#spinbuttonObject.setRange">&#x23;</a>
设置数值范围  
同时修改pos属性为最小值

### spinbuttonObject.setRect(rc) <a id="spinbuttonObject.setRect" href="#spinbuttonObject.setRect">&#x23;</a>
设置控件区块位置(::RECT结构体)

### spinbuttonObject.setRect(rc,true) <a id="spinbuttonObject.setRect" href="#spinbuttonObject.setRect">&#x23;</a>
设置控件屏幕区块位置(::RECT结构体)

### spinbuttonObject.show(true) <a id="spinbuttonObject.show" href="#spinbuttonObject.show">&#x23;</a>
显示控件

### spinbuttonObject.text <a id="spinbuttonObject.text" href="#spinbuttonObject.text">&#x23;</a>
控件文本

### spinbuttonObject.theme <a id="spinbuttonObject.theme" href="#spinbuttonObject.theme">&#x23;</a>
外观主题,例如  
winform.button.theme = "Explorer"  
winform.button.theme = false

### spinbuttonObject.threadCallable() <a id="spinbuttonObject.threadCallable" href="#spinbuttonObject.threadCallable">&#x23;</a>
开启此控件的跨线程调用功能

### spinbuttonObject.top <a id="spinbuttonObject.top" href="#spinbuttonObject.top">&#x23;</a>
顶部坐标

### spinbuttonObject.update() <a id="spinbuttonObject.update" href="#spinbuttonObject.update">&#x23;</a>
重绘invalidate函数指定的区块

### spinbuttonObject.value <a id="spinbuttonObject.value" href="#spinbuttonObject.value">&#x23;</a>
当前位置数值

### spinbuttonObject.visible <a id="spinbuttonObject.visible" href="#spinbuttonObject.visible">&#x23;</a>
当前控件窗口是否显示。  
仅检查当前窗口的可见性样式（窗口 是否具有 _WS_VISIBLE 样式）。  
不考虑父窗口是否可见，不考虑是否被其他窗口遮挡。  
如果需要同时判断父窗口的可见性，应改用 win.isVisible 函数。

### spinbuttonObject.width <a id="spinbuttonObject.width" href="#spinbuttonObject.width">&#x23;</a>
宽度

### 自动完成常量
_UDM_GETACCEL=0x46C  
_UDM_SETACCEL=0x46B  
_UDN_DELTAPOS=0xFFFFFD2E  
_UDS_ALIGNLEFT=8  
_UDS_ALIGNRIGHT=4  
_UDS_ARROWKEYS=0x20  
