namespace win.ui.ctrl; 
import win.ui.ctrl.metaProperty;//导入控件属性元表支持

 
class hotkey{
    ctor(parent,tvalue){ 
    tvalue.cls = "msctls_hotkey32";  
   
    }
    oncreate = function(){ 
    	::SendMessageInt(this.hwnd,4150/*_LVM_SETEXTENDEDLISTVIEWSTYLE*/,0,0x00000004 /*_LVS_EX_CHECKBOXES*/ );
    } 
    
    @metaProperty;
}


hotkey.metaProperty = ..win.ui.ctrl.metaProperty(
 
	gethotkey = function(){
		var hk = ::SendMessageInt(owner[["hwnd"]],   0x400/*_WM_USER*/+2 /*_HKM_GETHOTKEY*/,0,0) & 0xFFFF
		var mod,vk = (hk >> 8) &0xFF,hk & 0xFF;
		if   (mod   &  0x4/*_MOD_SHIFT*/   &&   mod   &   0x1/*_MOD_ALT*/) { 
		} 
		else   if   (mod   &   1) { 
			mod  &= ~1;
			mod  |= 4;
		} 
		else   if   (mod   &   4) { 
			mod  &= ~4;
			mod  |=  1;
		}  
		return mod,vk
	}
	sethotkey = function(mod,vk){
		if   (mod   &  0x4/*_MOD_SHIFT*/   &&   mod   &   0x1/*_MOD_ALT*/) { 
		} 
		else   if   (mod   &   1) { 
			mod  &= ~1;
			mod  |= 4;
		} 
		else   if   (mod   &   4) { 
			mod  &= ~4;
			mod  |=  1;
		}  
		
		::SendMessageInt(owner[["hwnd"]],   0x400/*_WM_USER*/+1 /*_HKM_SETHOTKEY*/,::MAKEWORD(vk  , mod ),0); 
	}
	
)

/***intellisense() 
!hotkey.hwnd = 控件句柄
!hotkey.id = 控件ID
!hotkey.text = 控件文本
!hotkey.parent = 父窗口
!hotkey.parent.hwnd = 父窗口句柄
!hotkey.hide = 控件是否隐藏
!hotkey.disabled = 控件ID
!hotkey.left = 左侧坐标
!hotkey.right = 右侧坐标
!hotkey.top = 顶部坐标
!hotkey.bottom = 底部坐标
!hotkey.redraw() = 刷新
!hotkey.show(true__) = 显示控件
!hotkey.rect = 控件区块位置(::RECT结构体)
!hotkey.clientRect =  控件客户区块位置(::RECT结构体)
!hotkey.font = 控件字体(::LOGFONT结构体)
!hotkey.clientRect =  获取控件客户区块位置(::RECT结构体)
!hotkey.theme = 外观主题,例如\nwinform.button.theme = "Explorer"\nwinform.button.theme = false
!hotkey.modifyStyle(.(remove,add) = 如果指定第三个参数，则使用此参数调用::SetWidnowPos 
!hotkey.modifyStyleEx(.(remove,add) = 如果指定第三个参数，则使用此参数调用::SetWidnowPos
!hotkey.capture = 是否捕获全局鼠标消自息
!hotkey.close() = 关闭控件窗口
!hotkey.invalidate(__/*可选使用::RECT()对象指定客户区*/) = 使窗口绘图区无效
!hotkey.invalidate(__/*可选使用::RECT()对象指定客户区*/,0) = 使窗口绘图区无效\n不刷新背景
!hotkey.update() = 重绘invalidate函数指定的区块 
!hotkey.gethotkey() = 返回两个值: 控制键码,按键码
!hotkey.sethotkey(__,) = 参数(控制键码,按键码)
!hotkey.setFocus() = 设置焦点 
!hotkey.setPos(.(x坐标,y坐标,宽,高,插入位置,参数) = 调整窗口位置或排序,所有参数可选\n同时指定x,y坐标则移动位置\n同时指定宽高则改变大小\n指定插入位置(句柄或_HWND前缀常量)则调整Z序
!hotkey.getPos() = 返回相对坐标,宽,高\nx,y,cx,cy=win.getPos(hwnd)
?win.ui.ctrl.hotkey  =!hotkey.
end intellisense***/

