简单选项卡控件( classic tab control )
创建该控件的父窗口(win.form对象),
设计时窗体容器是所有拖放在窗体上的控件的 _parentForm,
即使窗口移除子窗口样式、更改父子关系,或以 orphanWindow显示,
控件的 _parentForm 始终都不会改变
创建选项卡(同时创建选项卡按钮与显示内容的子窗口),返回子窗口(win.form 对象)。
参数 @1 指定一个表参数,与 win.form 对象的构造参数相同。
可在窗体设计器中复制 win.form 对象的构造参数作为此函数的参数。
表参数中的 text 字段指定表示选项卡标题(也即子窗口标题)。
参数 @1 也可以用字符串指定创建子窗口的代码文件路径。
uiTabObject.adjust = function( cx,cy,wParam ) {
/*窗口缩放时会自动触发此函数。
cx 参数为窗口宽度,cy 参数为窗口高度,
wParam 参数请参考 _WM_SIZE 消息参数说明,一般不用管。
所有 win.form 创建的窗体和控件都支持此事件,
重复赋值只会追加而不会覆盖此事件。
一般不建议添加一个 wndproc 仅仅是为了处理 _WM_SIZE 消息,
定义 adjust 事件是更好的选择。
可主动调用此事件,省略参数时 cx,cy 参数默认设为窗口大小*/
};
调整子窗口大小以适应客户区
底部坐标
是否捕获全局鼠标消息
运行时类名
关闭控件窗口
设计时类名
是否禁用
控件客户区块位置(::RECT结构体)
控件字体(::LOGFONT结构体)
读取选项结构体
读取选项卡区块位置
读取选项卡标题
返回父窗口
返回相对坐标,宽,高
x,y,cx,cy=win.getPos(hwnd)
控件区块位置(::RECT结构体)
控件屏幕区块位置(::RECT结构体)
高度
返回坐标指向的选项索引
参数三可省略,默认为false.
如果不指定任何参数,则自动调用 win.getMessagePos() 获取消息坐标
控件句柄
控件ID
使窗口绘图区无效
使窗口绘图区无效
不刷新背景
返回子窗口列表,只读属性
选项卡子窗口
左侧坐标
加载并添加显示内容的子窗口到选项卡控件。
返回加载到选项卡的子窗体( win.form 对象)。
加载并添加显示内容的子窗口到选项卡控件。
返回加载到选项卡的子窗体( win.form 对象)。
参数 @codePath 指定创建窗体的代码文件路径。
请注意保存外部窗体文件以后测试运行。
使用表参数 @tParam 创建显示内容的子窗口并添加到选项卡控件。
返回加载到选项卡的子窗体( win.form 对象)。
参数 @tParam 用法与 win.form 构造参数相同。
修改窗口样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS 前缀的常量
@add 用数值指定要添加的样式,可使用 WS 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码
修改窗口扩展样式,所有参数都是可选参数,
@remove 用数值指定要移除的样式,可使用 WS_EX 前缀的常量
@add 用数值指定要添加的样式,可使用 WS_EX 前缀的常量
@swpFlags 可选用数值指定调整窗口选项,可使用 SWP 前缀的常量
如果指定了 @swpFlag ,则使用该参数调用::SetWindowPos
细节请参考 win.modifyStyle 函数源码
uiTabObject.onDestroy = function(){
/*窗口销毁前触发*/
}
uiTabObject.onDrawItem = function(drawItem){
if( drawItem.CtlType == 101 /*_ODT_TAB*/ ){
/*自绘选项卡,创建控件的参数中需要添加ownerDraw=true*/
}
}
uiTabObject.onSelchange = function(idx,form){
/*切找选项卡触发此事件,
idx 为当前选项索引,数值。
form 为当前选项页,等价于 tab 控件的 form 属性。*/
}
uiTabObject.oncommand = function(id,event){
/*命令事件触发*/
}
uiTabObject.onnotify = function(id,code,ptr){
/*通知事件触发*/
}
投递窗口消息到消息队列中
此函数用法请参考 ::User32.PostMessage
刷新
参数为数值,移除指定索引的选项页
移除所有选项卡
右侧坐标
读取或设置当前选项索引
起始索引为1
发送窗口消息
此函数用法请参考 ::User32.SendMessage
设置焦点
指定LOGFONT字体对象,或逻辑字体句柄
uiTabObject.setFont(point=10;name="宋体");
设置选项结构体
设置选项卡标题
改变父窗口
调整窗口位置或排序,所有参数可选
同时指定x,y坐标则移动位置
同时指定宽高则改变大小
指定插入位置(句柄或_HWND前缀常量)则调整Z序
设置控件区块位置(::RECT结构体)
设置控件屏幕区块位置(::RECT结构体)
禁止重绘
恢复重绘
显示控件
外观主题,例如
winform.button.theme = "Explorer"
winform.button.theme = false
开启此控件的跨线程调用功能
顶部坐标
重绘invalidate函数指定的区块
宽度
uiTabObject.wndproc = function(hwnd,message,wParam,lParam){
/*窗口消息回调,返回任意非null值阻止默认回调
wndproc重复赋值时追加函数而不是覆盖之前的回调
设为null添除所有消息回调函数
wndproc也可以是一个表,键要为处理的消息,值为对应的消息回调函数*/
}
选项结构体
_TCM_FIRST=0x1300
_TCS_BOTTOM=2
_TCS_BUTTONS=0x100
_TCS_FIXEDWIDTH=0x400
_TCS_FLATBUTTONS=8
_TCS_FOCUSNEVER=0x8000
_TCS_FOCUSONBUTTONDOWN=0x1000
_TCS_FORCEICONLEFT=0x10
_TCS_FORCELABELLEFT=0x20
_TCS_HOTTRACK=0x40
_TCS_MULTILINE=0x200
_TCS_MULTISELECT=4
_TCS_OWNERDRAWFIXED=0x2000
_TCS_RAGGEDRIGHT=0x800
_TCS_RIGHT=2
_TCS_RIGHTJUSTIFY=0
_TCS_SCROLLOPPOSITE=1
_TCS_SINGLELINE=0
_TCS_TABS=0
_TCS_TOOLTIPS=0x4000
_TCS_VERTICAL=0x80