# win.ui.tracker 库模块帮助文档

## win.ui 成员列表 <a id="win.ui" href="#win.ui">&#x23;</a>

### win.ui.tracker <a id="win.ui.tracker" href="#win.ui.tracker">&#x23;</a>
创建鼠标跟踪器,

### win.ui.tracker() <a id="win.ui.tracker" href="#win.ui.tracker">&#x23;</a>
[返回对象:winUiTrackerObject](#winUiTrackerObject)

### win.ui.tracker(控件对象) <a id="win.ui.tracker" href="#win.ui.tracker">&#x23;</a>
参数为控件或窗口对象  
返回鼠标跟踪器 - 实际上就是返回控件对象自身,  
如果已经调用此函数创建过鼠标跟踪器,则直接返回参数

## winUiTrackerObject 成员列表 <a id="winUiTrackerObject" href="#winUiTrackerObject">&#x23;</a>

### winUiTrackerObject.focusOnClick <a id="winUiTrackerObject.focusOnClick" href="#winUiTrackerObject.focusOnClick">&#x23;</a>
设为 false 时禁止在单击控件时设置此控件为焦点控件

### winUiTrackerObject.radioClick() <a id="winUiTrackerObject.radioClick" href="#winUiTrackerObject.radioClick">&#x23;</a>
单选模式下选中控件

### winUiTrackerObject.radioValue() <a id="winUiTrackerObject.radioValue" href="#winUiTrackerObject.radioValue">&#x23;</a>
单选模式下选中控件的文本

### winUiTrackerObject.state.active <a id="winUiTrackerObject.state.active" href="#winUiTrackerObject.state.active">&#x23;</a>
鼠标或键盘键按下状态

### winUiTrackerObject.state.checked <a id="winUiTrackerObject.state.checked" href="#winUiTrackerObject.state.checked">&#x23;</a>
是否选中状态

### winUiTrackerObject.state.disabled <a id="winUiTrackerObject.state.disabled" href="#winUiTrackerObject.state.disabled">&#x23;</a>
已禁用

### winUiTrackerObject.state.dragging <a id="winUiTrackerObject.state.dragging" href="#winUiTrackerObject.state.dragging">&#x23;</a>
是否按下鼠标且正在拖动

### winUiTrackerObject.state.focus <a id="winUiTrackerObject.state.focus" href="#winUiTrackerObject.state.focus">&#x23;</a>
是否已得到焦点

### winUiTrackerObject.state.hover <a id="winUiTrackerObject.state.hover" href="#winUiTrackerObject.state.hover">&#x23;</a>
鼠标是否在控件上方  
悬停超过预设时间后触发onMouseHover事件

## winUiTrackerObject 事件列表 <a id="winUiTrackerObjectEvent" href="#winUiTrackerObjectEvent">&#x23;</a>

### winUiTrackerObject.onContextMenu <a id="winUiTrackerObject.onContextMenu" href="#winUiTrackerObject.onContextMenu">&#x23;</a>

```aardio
winUiTrackerObject.onContextMenu = function(x,y){ 
	/*请求显示右键菜单（单击鼠标右键、菜单键或按下 Shift+F10。  
参数 x,y 为鼠标当前所在的屏幕坐标*/
}
```

### winUiTrackerObject.onFocusGot(hLostFocus) <a id="winUiTrackerObject.onFocusGot" href="#winUiTrackerObject.onFocusGot">&#x23;</a>

```aardio
winUiTrackerObject.onFocusGot = function(hLostFocus){
	..win.setFocus(hLostFocus);/*得到焦点触发此事件,hLostFocus为失去焦点的窗口句柄,  
如果在这里将hLostFocus恢复焦点,则阻止当前窗口得到焦点*/
}
```

### winUiTrackerObject.onFocusLost(hFocus) <a id="winUiTrackerObject.onFocusLost" href="#winUiTrackerObject.onFocusLost">&#x23;</a>

```aardio
winUiTrackerObject.onFocusLost = function(hFocus){
	/*失去焦点触发此事件,hFocus为得到焦点的窗口句柄*/
}
```

### winUiTrackerObject.onKeyDown <a id="winUiTrackerObject.onKeyDown" href="#winUiTrackerObject.onKeyDown">&#x23;</a>

```aardio
winUiTrackerObject.onKeyDown = function(keyCode,lParam,repeat){
	/*按下键盘键*/
}
```

### winUiTrackerObject.onKeyUp <a id="winUiTrackerObject.onKeyUp" href="#winUiTrackerObject.onKeyUp">&#x23;</a>

```aardio
winUiTrackerObject.onKeyUp = function(keyCode,lParam){
	/*放开键盘键*/
}
```

### winUiTrackerObject.onMiddleMouseDown <a id="winUiTrackerObject.onMiddleMouseDown" href="#winUiTrackerObject.onMiddleMouseDown">&#x23;</a>

```aardio
winUiTrackerObject.onMiddleMouseDown = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标中键按下*/
}
```

### winUiTrackerObject.onMiddleMouseUp <a id="winUiTrackerObject.onMiddleMouseUp" href="#winUiTrackerObject.onMiddleMouseUp">&#x23;</a>

```aardio
winUiTrackerObject.onMiddleMouseUp = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标中键弹起*/
}
```

### winUiTrackerObject.onMouseActivate <a id="winUiTrackerObject.onMouseActivate" href="#winUiTrackerObject.onMouseActivate">&#x23;</a>

```aardio
winUiTrackerObject.onMouseActivate = function(hwndTop,hitTest,message){  
	return _MA_/*鼠标点击并且将要激活窗口时触发此事件  
hwndTop表示被激活的顶层窗口,  
hitTest参数请参考WM_NCHITTEST消息  
message为鼠标消息ID  
返回值的作用请参数MSDN*/  
}
```

### winUiTrackerObject.onMouseClick <a id="winUiTrackerObject.onMouseClick" href="#winUiTrackerObject.onMouseClick">&#x23;</a>

```aardio
winUiTrackerObject.onMouseClick = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标左键在控件上单击,  
orphanWindow模式下如果阻止控件得到焦点,此事件不会被触发*/
}
```

### winUiTrackerObject.onMouseDoubleClick <a id="winUiTrackerObject.onMouseDoubleClick" href="#winUiTrackerObject.onMouseDoubleClick">&#x23;</a>

```aardio
winUiTrackerObject.onMouseDoubleClick = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标双击*/
}
```

### winUiTrackerObject.onMouseDown <a id="winUiTrackerObject.onMouseDown" href="#winUiTrackerObject.onMouseDown">&#x23;</a>

```aardio
winUiTrackerObject.onMouseDown = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标左键按下,  
orphanWindow模式下如果阻止控件得到焦点,此事件不会被触发*/
}
```

### winUiTrackerObject.onMouseDrag <a id="winUiTrackerObject.onMouseDrag" href="#winUiTrackerObject.onMouseDrag">&#x23;</a>

```aardio
winUiTrackerObject.onMouseDrag = function(wParam,lParam){ 
    var x,y = win.getMessagePos(lParam);
	/*鼠标左键按下拖动,  
自动捕获鼠标,允许拖出控件范围*/ 
}
```

### winUiTrackerObject.onMouseEnter <a id="winUiTrackerObject.onMouseEnter" href="#winUiTrackerObject.onMouseEnter">&#x23;</a>

```aardio
winUiTrackerObject.onMouseEnter = function(wParam,lParam){
	/*鼠标移入*/
}
```

### winUiTrackerObject.onMouseHWheel <a id="winUiTrackerObject.onMouseHWheel" href="#winUiTrackerObject.onMouseHWheel">&#x23;</a>

```aardio
winUiTrackerObject.onMouseHWheel = function(flags,delta,lParam){
    delta = -delta/(120/3); 
	/*水平滚动鼠标滚轮,flags 参数以 _MK_CONTROL 等常量表示按键*/
}
```

### winUiTrackerObject.onMouseHover <a id="winUiTrackerObject.onMouseHover" href="#winUiTrackerObject.onMouseHover">&#x23;</a>

```aardio
winUiTrackerObject.onMouseHover = function(wParam,lParam){
	/*鼠标悬停*/
}
```

### winUiTrackerObject.onMouseLeave <a id="winUiTrackerObject.onMouseLeave" href="#winUiTrackerObject.onMouseLeave">&#x23;</a>

```aardio
winUiTrackerObject.onMouseLeave = function(wParam,lParam){
	/*鼠标移出*/
}
```

### winUiTrackerObject.onMouseMove <a id="winUiTrackerObject.onMouseMove" href="#winUiTrackerObject.onMouseMove">&#x23;</a>

```aardio
winUiTrackerObject.onMouseMove = function(wParam,lParam){
	if( wParam & 0x1/*_MK_LBUTTON*/ ){
		var x,y = win.getMessagePos(lParam);
		/*鼠标移动*/
	}
}
```

### winUiTrackerObject.onMouseUp <a id="winUiTrackerObject.onMouseUp" href="#winUiTrackerObject.onMouseUp">&#x23;</a>

```aardio
winUiTrackerObject.onMouseUp = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标左键弹起*/
}
```

### winUiTrackerObject.onMouseWheel <a id="winUiTrackerObject.onMouseWheel" href="#winUiTrackerObject.onMouseWheel">&#x23;</a>

```aardio
winUiTrackerObject.onMouseWheel = function(flags,delta,lParam){
    delta = delta/(120/3); 
	/*滚动鼠标滚轮,flags 参数以 _MK_CONTROL 等常量表示按键*/
}
```

### winUiTrackerObject.onRightMouseDown <a id="winUiTrackerObject.onRightMouseDown" href="#winUiTrackerObject.onRightMouseDown">&#x23;</a>

```aardio
winUiTrackerObject.onRightMouseDown = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标右键按下*/
}
```

### winUiTrackerObject.onRightMouseUp <a id="winUiTrackerObject.onRightMouseUp" href="#winUiTrackerObject.onRightMouseUp">&#x23;</a>

```aardio
winUiTrackerObject.onRightMouseUp = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	/*鼠标右键弹起*/
}
```

### winUiTrackerObject.onSelectChange <a id="winUiTrackerObject.onSelectChange" href="#winUiTrackerObject.onSelectChange">&#x23;</a>

```aardio
winUiTrackerObject.onSelectChange = function(prev,current){
	/*单选模式下已选中当前控件,prev 为同一分组之前选中的控件。  
同一分组之前没有选中控件时 prev 为 null。  
current 为当前选中控件。*/
}
```

### winUiTrackerObject.onStateChange <a id="winUiTrackerObject.onStateChange" href="#winUiTrackerObject.onStateChange">&#x23;</a>

```aardio
winUiTrackerObject.onStateChange = function(){
	/*状态已改变*/
}
```

### winUiTrackerObject.onSysKeyDown <a id="winUiTrackerObject.onSysKeyDown" href="#winUiTrackerObject.onSysKeyDown">&#x23;</a>

```aardio
winUiTrackerObject.onSysKeyDown = function(keyCode,lParam,repeat){
	if(keyCode!=0x12/*_VK_ALT*/){
		/*按下键盘ALT组合键*/		
	}
}
```

### winUiTrackerObject.onSysKeyUp <a id="winUiTrackerObject.onSysKeyUp" href="#winUiTrackerObject.onSysKeyUp">&#x23;</a>

```aardio
winUiTrackerObject.onSysKeyUp = function(keyCode,lParam){
	/*放开键盘键*/
}
```

