菜单支持库
创建窗口菜单
需要先调用 import win.ui.menu,不然发布后会报错。
开发环境下运行,为了加快启动速度,不会百分百排除所有没有引用的库
句柄到菜单对象映射表
查找菜单对象
win.ui.menu.onDrawItem = function(drawItem,dpiScaleX,dpiScaleY){
return 1;
}
win.ui.menu.onMeasureItem = function(measureItem,dpiScaleX,dpiScaleY){
measureItem.itemWidth = 80;
measureItem.itemHeight = ::GetSystemMetrics(0xF/*_SM_CYMENU*/);
}
menuObject.add("菜单标题",function(){
/*点击菜单项的回调函数,
注意添加菜单项以后 add 函数返回菜单命令ID*/
})
添加子菜单
返回添加的子菜单
添加分隔线
menuObject.add(
text = "标题";
bitmap = "位图句柄或路径、或图像数据,可选参数";
bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";
proc = function(id){
/*点击菜单项的回调函数,
注意添加菜单项以后 add 函数返回菜单命令ID*/
};
id = 可选参数;
flag = 可选参数;
);
menuObject.addTable( {
{ "菜单文本"; function(id){
/*菜单事件回调函数*/
} }; { /*分隔线*/ }
{ "退出程序"; function(id){
winform.close()
} };
} )
勾选或取消勾选菜单项
勾选或取消勾选菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
勾选或取消勾选菜单项,参数@2默认为 true
返回菜单项是否选中状态
返回菜单项是否选中状态e,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
返回菜单项是否选中状态
模拟点击指定命令ID的菜单项
模拟点击指定位置菜单项
关闭菜单
返回菜单子项数目
删除指定位置菜单项
移除指定命令ID的菜单项
被移除的如果是子菜单则销毁,不可重用
删除指定位置菜单项
被移除的如果是子菜单则销毁,不可重用
启用或禁用菜单项
启用或禁用菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
启用或禁用菜单项,参数@2默认为 true
根据指定位置序号返回菜单项的命令ID
根据指定位置序号返回菜单项的命令ID
根据菜单项的命令ID返回菜单位置序号
根据菜单项的命令ID返回菜单位置序号
返回菜单项文本
返回菜单项文本,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
返回菜单项文本
菜单句柄
在指定位置插入分隔线
menuObject.insert(1,"菜单标题",function(){
/*点击菜单项的回调函数,
注意添加菜单项以后 insert 函数返回菜单命令ID*/
})
menuObject.insert(
position = 1;
text = "标题";
bitmap = "位图句柄或路径、或图像数据,可选参数";
bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";
proc = function(id){
/*点击菜单项的回调函数,
注意添加菜单项以后 add 函数返回菜单命令ID*/
};
id = 可选参数;
flag = 可选参数;
);
menuObject.onMenuItemClick = function(id){
menuFile.selId = id;/*指定默认菜单回调函数*/
}
启用自绘
系统菜单自绘没多大意义,建议使用弹出窗口模拟菜单即可
重绘菜单
移除指定位置菜单项
移除指定命令ID的菜单项
被移除的如果是子菜单并不销毁,可重用
移除指定位置菜单项
被移除的如果是子菜单并不销毁,可重用
重设菜单回调函数
重设菜单回调函数
重设菜单回调函数
获取或修改当前选中项命令ID,单选模式
获取或修改当前选中项索引,单选模式
获取或修改当前选中项文本,单选模式
设置菜单项位图
设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据,
如果参数@4为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据
设置菜单项文本
设置菜单项文本,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
设置菜单项文本
返回指定位置子菜单
popmenuObject.add("菜单标题",function(){
/*点击菜单项的回调函数,
注意添加菜单项以后 add 函数返回菜单命令ID*/
})
添加子菜单
返回添加的子菜单
添加分隔线
popmenuObject.add(
text = "标题";
bitmap = "位图句柄或路径、或图像数据,可选参数";
bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";
proc = function(id){
/*点击菜单项的回调函数,
注意添加菜单项以后 add 函数返回菜单命令ID*/
};
id = 可选参数;
flag = 可选参数;
);
popmenuObject.addTable( {
{ "菜单文本"; function(id){
/*菜单事件回调函数*/
} }; { /*分隔线*/ }
{ "退出程序"; function(id){
winform.close()
} };
} )
勾选或取消勾选菜单项
勾选或取消勾选菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
勾选或取消勾选菜单项,参数@2默认为 true
返回菜单项是否选中状态
返回菜单项是否选中状态e,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
返回菜单项是否选中状态
模拟点击指定命令ID的菜单项
模拟点击指定位置菜单项
关闭菜单
返回菜单子项数目
删除指定位置菜单项
移除指定命令ID的菜单项
被移除的如果是子菜单则销毁,不可重用
删除指定位置菜单项
被移除的如果是子菜单则销毁,不可重用
启用或禁用菜单项
启用或禁用菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
启用或禁用菜单项,参数@2默认为 true
调用菜单回调函数
可选指定接收命令的窗体句柄
可添加任意个附加参数
根据指定位置序号返回菜单项的命令ID
根据指定位置序号返回菜单项的命令ID
根据菜单项的命令ID返回菜单位置序号
根据菜单项的命令ID返回菜单位置序号
返回菜单项文本
返回菜单项文本,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
返回菜单项文本
菜单句柄
在指定位置插入分隔线
popmenuObject.insert(1,"菜单标题",function(){
/*点击菜单项的回调函数,
注意添加菜单项以后 insert 函数返回菜单命令ID*/
})
popmenuObject.insert(
position = 1;
text = "标题";
bitmap = "位图句柄或路径、或图像数据,可选参数";
bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";
proc = function(id){
/*点击菜单项的回调函数,
注意添加菜单项以后 add 函数返回菜单命令ID*/
};
id = 可选参数;
flag = 可选参数;
);
popmenuObject.onMenuItemClick = function(id){
menuFile.selId = id;/*指定默认菜单回调函数*/
}
启用自绘
系统菜单自绘没多大意义,建议使用弹出窗口模拟菜单即可
弹出菜单并返回用户点选ID
弹出菜单
并返回用户点选ID
未选择或发生错误则返回零,
如果不指定坐标,则自动获取鼠标当前位置,
可选用参数@4指定 TPM 前缀的选项,
例如 _TPM_BOTTOMALIGN 指定坐标 y 指定菜单底部位置
弹出菜单
弹出菜单
如果不指定坐标,则自动获取鼠标当前位置,
可选用参数@4指定 TPM 前缀的选项,
例如 _TPM_BOTTOMALIGN 指定坐标 y 指定菜单底部位置
移除指定位置菜单项
移除指定命令ID的菜单项
被移除的如果是子菜单并不销毁,可重用
移除指定位置菜单项
被移除的如果是子菜单并不销毁,可重用
重设菜单回调函数
重设菜单回调函数
重设菜单回调函数
获取或修改当前选中项命令ID,单选模式
获取或修改当前选中项索引,单选模式
获取或修改当前选中项文本,单选模式
设置菜单项位图
设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据,
如果参数@4为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据
设置菜单项文本
设置菜单项文本,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID
设置菜单项文本
返回指定位置子菜单
返回窗口菜单
参数@1可指定窗体对象或窗体句柄
返回的菜单对象不能添加菜单
返回系统菜单
参数@1可指定窗体对象或窗体句柄
请事先导入win.ui.menu
返回系统菜单
并重置为缺省状态
参数@1可指定窗体对象或窗体句柄
请事先导入win.ui.menu
创建窗口菜单
参数 @1 可指定窗口或控件对象,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效
使用存在的菜单句柄创建菜单对象,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效
创建弹出菜单
需要先调用 import win.ui.menu,不然发布后会报错。
开发环境下运行,为了加快启动速度,不会百分百排除所有没有引用的库
创建弹出菜单,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效
使用存在的菜单句柄创建弹出菜单对象,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效
_MENU_ITEM_IS_SUBMENU=-1
_TPM_BOTTOMALIGN=0x20
_TPM_CENTERALIGN=0x4
_TPM_LEFTALIGN=0
_TPM_RIGHTALIGN=0x8
_TPM_TOPALIGN=0
_TPM_VCENTERALIGN=0x10