aardio 文档

win.ui.menu 库模块帮助文档

win.ui.menu 成员列表 #

菜单支持库

创建窗口菜单
需要先调用 import win.ui.menu,不然发布后会报错。
开发环境下运行,为了加快启动速度,不会百分百排除所有没有引用的库

win.ui.menu._handle2menu #

句柄到菜单对象映射表

win.ui.menu.findByHandle() #

返回对象:menuObject

win.ui.menu.findByHandle(菜单句柄) #

查找菜单对象

win.ui.menu.onDrawItem #

win.ui.menu.onDrawItem = function(drawItem,dpiScaleX,dpiScaleY){

    return 1; 
}

win.ui.menu.onMeasureItem #

win.ui.menu.onMeasureItem = function(measureItem,dpiScaleX,dpiScaleY){ 
    measureItem.itemWidth = 80;  
    measureItem.itemHeight = ::GetSystemMetrics(0xF/*_SM_CYMENU*/);
}

menuObject 成员列表 #

menuObject.add #

添加菜单项。

menuObject.add() #

添加分隔线

menuObject.add(menuTable) #

menuObject.add(  
    text = "标题";  
    bitmap = "位图句柄或路径、或图像数据,可选参数";  
    bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";  
    proc = function(id){  
        /*点击菜单项的回调函数,  
注意添加菜单项以后 add 函数返回菜单命令ID*/  
    };  
    id = 可选参数;  
    flag = 可选参数;  
);

menuObject.add(title,callback,flags,commandId) #

menuObject.add("菜单标题",function(){  
    /*指定点击菜单项的回调函数。  
参数 @flags 可选用 _MF_ 前缀的常量自定义选项。  
可选用 @commandId 参数自定义命令 ID,不指定则自动注册空闲命令 ID。  
添加菜单项以后 add 方法返回注册的菜单项命令 ID*/  

})

menuObject.add(title,commandId) #

添加菜单项。
参数 @title 指定菜单项文本。
参数 @commandId 指定绑定的命令 ID,不会触发默认回调函数 onMenuItemClick 。

menuObject.add(title,subMenu) #

添加 @subMenu 参数指定的子菜单。
@title 参数指定菜单项文本。
返回添加的子菜单

menuObject.addTable #

menuObject.addTable( {  
    { "菜单文本";  function(id){  
        /*菜单事件回调函数*/  
    } }; { /*分隔线*/ }  
    { "退出程序"; function(id){    
        winform.close()   
    } };  
} )

menuObject.check #

勾选或取消勾选菜单项

menuObject.check(菜单项命令ID,是否选中,0/*_MF_BYCOMMAND*/) #

勾选或取消勾选菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

menuObject.check(菜单项序号,是否选中) #

勾选或取消勾选菜单项,参数@2默认为 true

menuObject.checked #

返回菜单项是否选中状态

menuObject.checked(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

返回菜单项是否选中状态e,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

menuObject.checked(菜单项序号) #

返回菜单项是否选中状态

menuObject.click(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

模拟点击指定命令ID的菜单项

menuObject.click(菜单项序号) #

模拟点击指定位置菜单项

menuObject.close() #

关闭菜单

menuObject.count() #

返回菜单子项数目

menuObject.delete #

删除指定位置菜单项

menuObject.delete(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

移除指定命令ID的菜单项
被移除的如果是子菜单则销毁,不可重用

menuObject.delete(菜单项序号) #

删除指定位置菜单项
被移除的如果是子菜单则销毁,不可重用

menuObject.enable #

启用或禁用菜单项

menuObject.enable(菜单项命令ID,是否启用,0/*_MF_BYCOMMAND*/) #

启用或禁用菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

menuObject.enable(菜单项序号,是否启用) #

启用或禁用菜单项,参数@2默认为 true

menuObject.getId #

根据指定位置序号返回菜单项的命令ID

menuObject.getId(菜单项序号) #

根据指定位置序号返回菜单项的命令ID

menuObject.getPos #

根据菜单项的命令ID返回菜单位置序号

menuObject.getPos(菜单项命令I) #

根据菜单项的命令ID返回菜单位置序号

menuObject.getString #

返回菜单项文本

menuObject.getString(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

返回菜单项文本,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

menuObject.getString(菜单项序号) #

返回菜单项文本

menuObject.handle #

菜单句柄

menuObject.insert #

在指定位置插入菜单项。

menuObject.insert(menuTable) #

menuObject.insert(  
    position = 1;  
    text = "标题";  
    bitmap = "位图句柄或路径、或图像数据,可选参数";  
    bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";  
    proc = function(id){  
        /*点击菜单项的回调函数,  
注意添加菜单项以后 add 函数返回菜单命令ID*/  
    };  
    id = 可选参数;  
    flag = 可选参数;  
);

menuObject.insert(position) #

在指定位置插入分隔线。
@position 用数值指定位置序号。

menuObject.insert(position,title,callback,flags,commandId) #

menuObject.insert(1,"菜单标题",function(){  
    /*指定点击菜单项的回调函数。  
参数 @flags 可选用 _MF_ 前缀的常量自定义选项。  
可选用 @commandId 参数自定义命令 ID,不指定则自动注册空闲命令 ID。  
添加菜单项以后 add 方法返回注册的菜单项命令 ID*/  

})

menuObject.insert(position,title,commandId) #

在指定位置插入菜单项。
参数 @position 用数值指定位置序号。
参数 @title 指定菜单项文本。
参数 @commandId 指定绑定的命令 ID,不会触发默认回调函数 onMenuItemClick 。

menuObject.insert(position,title,subMenu) #

在指定位置插入 @subMenu 参数指定的子菜单。
@title 参数指定菜单项文本。
返回添加的子菜单

menuObject.onMenuItemClick #

menuObject.onMenuItemClick = function(id){
    /*默认的菜单回调函数。  
如果添加菜单项时,回调函数指定为 null 则默认调用此函数。  
如果回调函数指定为命令 ID 则不触发此默认回调。*/
}

menuObject.ownerDraw #

启用自绘
系统菜单自绘没多大意义,建议使用弹出窗口模拟菜单即可

menuObject.redraw() #

重绘菜单

menuObject.remove #

移除指定位置菜单项

menuObject.remove(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

移除指定命令ID的菜单项
被移除的如果是子菜单并不销毁,可重用

menuObject.remove(菜单项序号) #

移除指定位置菜单项
被移除的如果是子菜单并不销毁,可重用

menuObject.reset #

重设菜单回调函数

menuObject.reset(新的回调函数,菜单ID,0/*_MF_BYCOMMAND*/) #

重设菜单回调函数

menuObject.reset(新的回调函数,菜单位置) #

重设菜单回调函数

menuObject.selId #

获取或修改当前选中项命令ID,单选模式

menuObject.selIndex #

获取或修改当前选中项索引,单选模式

menuObject.selText #

获取或修改当前选中项文本,单选模式

menuObject.setBitmap #

设置菜单项位图

menuObject.setBitmap(菜单项命令ID,位图,选中位图,0/*_MF_BYCOMMAND*/) #

设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据,
如果参数@4为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

menuObject.setBitmap(菜单项序号,位图,选中位图) #

设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据

menuObject.setString #

设置菜单项文本

menuObject.setString(菜单项命令ID,字符串,0/*_MF_BYCOMMAND*/) #

设置菜单项文本,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

menuObject.setString(菜单项序号,字符串) #

设置菜单项文本

menuObject.subMenu() #

返回对象:popmenuObject

menuObject.subMenu(1) #

返回指定位置子菜单

popmenuObject 成员列表 #

popmenuObject.add #

添加菜单项。

popmenuObject.add() #

添加分隔线

popmenuObject.add(menuTable) #

popmenuObject.add(  
    text = "标题";  
    bitmap = "位图句柄或路径、或图像数据,可选参数";  
    bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";  
    proc = function(id){  
        /*点击菜单项的回调函数,  
注意添加菜单项以后 add 函数返回菜单命令ID*/  
    };  
    id = 可选参数;  
    flag = 可选参数;  
);

popmenuObject.add(title,callback,flags,commandId) #

popmenuObject.add("菜单标题",function(){  
    /*指定点击菜单项的回调函数。  
参数 @flags 可选用 _MF_ 前缀的常量自定义选项。  
可选用 @commandId 参数自定义命令 ID,不指定则自动注册空闲命令 ID。  
添加菜单项以后 add 方法返回注册的菜单项命令 ID*/  

})

popmenuObject.add(title,commandId) #

添加菜单项。
参数 @title 指定菜单项文本。
参数 @commandId 指定绑定的命令 ID,不会触发默认回调函数 onMenuItemClick 。
可通过 popId 方法获取用户点选找菜单项 ID。

popmenuObject.add(title,subMenu) #

添加 @subMenu 参数指定的子菜单。
@title 参数指定菜单项文本。
返回添加的子菜单

popmenuObject.addTable #

popmenuObject.addTable( {  
    { "菜单文本";  function(id){  
        /*菜单事件回调函数*/  
    } }; { /*分隔线*/ }  
    { "退出程序"; function(id){    
        winform.close()   
    } };  
} )

popmenuObject.check #

勾选或取消勾选菜单项

popmenuObject.check(菜单项命令ID,是否选中,0/*_MF_BYCOMMAND*/) #

勾选或取消勾选菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

popmenuObject.check(菜单项序号,是否选中) #

勾选或取消勾选菜单项,参数@2默认为 true

popmenuObject.checked #

返回菜单项是否选中状态

popmenuObject.checked(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

返回菜单项是否选中状态e,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

popmenuObject.checked(菜单项序号) #

返回菜单项是否选中状态

popmenuObject.click(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

模拟点击指定命令ID的菜单项

popmenuObject.click(菜单项序号) #

模拟点击指定位置菜单项

popmenuObject.close() #

关闭菜单

popmenuObject.count() #

返回菜单子项数目

popmenuObject.delete #

删除指定位置菜单项

popmenuObject.delete(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

移除指定命令ID的菜单项
被移除的如果是子菜单则销毁,不可重用

popmenuObject.delete(菜单项序号) #

删除指定位置菜单项
被移除的如果是子菜单则销毁,不可重用

popmenuObject.enable #

启用或禁用菜单项

popmenuObject.enable(菜单项命令ID,是否启用,0/*_MF_BYCOMMAND*/) #

启用或禁用菜单项,参数@2默认为 true,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

popmenuObject.enable(菜单项序号,是否启用) #

启用或禁用菜单项,参数@2默认为 true

popmenuObject.fireId(commandId,hwnd) #

调用 @commandId 指定的菜单项命令 ID 绑定的回调函数。
可选指定接收命令的父窗体句柄。
可添加任意个附加参数(转发给菜单项回调函数)。

popmenuObject.getId #

根据指定位置序号返回菜单项的命令ID

popmenuObject.getId(菜单项序号) #

根据指定位置序号返回菜单项的命令ID

popmenuObject.getPos #

根据菜单项的命令ID返回菜单位置序号

popmenuObject.getPos(菜单项命令I) #

根据菜单项的命令ID返回菜单位置序号

popmenuObject.getString #

返回菜单项文本

popmenuObject.getString(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

返回菜单项文本,
如果参数@2为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

popmenuObject.getString(菜单项序号) #

返回菜单项文本

popmenuObject.handle #

菜单句柄

popmenuObject.insert #

在指定位置插入菜单项。

popmenuObject.insert(menuTable) #

popmenuObject.insert(  
    position = 1;  
    text = "标题";  
    bitmap = "位图句柄或路径、或图像数据,可选参数";  
    bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数";  
    proc = function(id){  
        /*点击菜单项的回调函数,  
注意添加菜单项以后 add 函数返回菜单命令ID*/  
    };  
    id = 可选参数;  
    flag = 可选参数;  
);

popmenuObject.insert(position) #

在指定位置插入分隔线。
@position 用数值指定位置序号。

popmenuObject.insert(position,title,callback,flags,commandId) #

popmenuObject.insert(1,"菜单标题",function(){  
    /*指定点击菜单项的回调函数。  
参数 @flags 可选用 _MF_ 前缀的常量自定义选项。  
可选用 @commandId 参数自定义命令 ID,不指定则自动注册空闲命令 ID。  
添加菜单项以后 add 方法返回注册的菜单项命令 ID*/  

})

popmenuObject.insert(position,title,commandId) #

在指定位置插入菜单项。
参数 @position 用数值指定位置序号。
参数 @title 指定菜单项文本。
参数 @commandId 指定绑定的命令 ID,不会触发默认回调函数 onMenuItemClick 。

popmenuObject.insert(position,title,subMenu) #

在指定位置插入 @subMenu 参数指定的子菜单。
@title 参数指定菜单项文本。
返回添加的子菜单

popmenuObject.onMenuItemClick #

popmenuObject.onMenuItemClick = function(id){
    /*默认的菜单回调函数。  
如果添加菜单项时,回调函数指定为 null 则默认调用此函数。  
如果回调函数指定为命令 ID 则不触发此默认回调。*/
}

popmenuObject.ownerDraw #

启用自绘
系统菜单自绘没多大意义,建议使用弹出窗口模拟菜单即可

popmenuObject.popId #

弹出菜单并返回用户点选的菜单项命令 ID。
此方法仅返回命令 ID,不会自动触发命令 ID 绑定的回调函数。
可用返回值作为参数调用 fireId 方法触发相应的回调函数。

popmenuObject.popId(x坐标,y坐标,是否屏幕坐标,选项) #

弹出菜单。
并返回用户点选菜单项的命令 ID,不会自动触发菜单项绑定的回调函数。
未选择或发生错误则返回零。弹出菜单。

如果不指定坐标,则自动获取鼠标当前位置。
参数 @3 指定参数 @1,@2 是否为屏幕坐标,默认为 false。
一般不需要指定坐标参数,由函数自动设定即可。
可选用参数 @4 指定 TPM 前缀的选项,
例如 _TPM_BOTTOMALIGN 指定坐标 y 指定菜单底部位置。

popmenuObject.popup #

弹出菜单并自动触发菜单项绑定的回调函数。
成功返回 true,失败返回 false。

此函数不会返回触发菜单项绑定的命令 ID,
改用 popId 方法可返回命令 ID 而不会自动触发回调。

popmenuObject.popup(x坐标,y坐标,是否屏幕坐标,选项) #

弹出菜单。
如果不指定坐标,则自动获取鼠标当前位置。
参数 @3 指定参数 @1,@2 是否为屏幕坐标,默认为 false。
一般不需要指定坐标参数,由函数自动设定即可。
可选用参数 @4 指定 TPM 前缀的选项,
例如 _TPM_BOTTOMALIGN 指定坐标 y 指定菜单底部位置

popmenuObject.remove #

移除指定位置菜单项

popmenuObject.remove(菜单项命令ID,0/*_MF_BYCOMMAND*/) #

移除指定命令ID的菜单项
被移除的如果是子菜单并不销毁,可重用

popmenuObject.remove(菜单项序号) #

移除指定位置菜单项
被移除的如果是子菜单并不销毁,可重用

popmenuObject.reset #

重设菜单回调函数

popmenuObject.reset(新的回调函数,菜单ID,0/*_MF_BYCOMMAND*/) #

重设菜单回调函数

popmenuObject.reset(新的回调函数,菜单位置) #

重设菜单回调函数

popmenuObject.selId #

获取或修改当前选中项命令ID,单选模式

popmenuObject.selIndex #

获取或修改当前选中项索引,单选模式

popmenuObject.selText #

获取或修改当前选中项文本,单选模式

popmenuObject.setBitmap #

设置菜单项位图

popmenuObject.setBitmap(菜单项命令ID,位图,选中位图,0/*_MF_BYCOMMAND*/) #

设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据,
如果参数 @4 为 0/*_MF_BYCOMMAND*/ 则参数 @1 为菜单命令 ID

popmenuObject.setBitmap(菜单项序号,位图,选中位图) #

设置菜单项位图,
选中位图为可选参数,
图像可以是句柄指针,也可以是图像文件路径或数据

popmenuObject.setString #

设置菜单项文本

popmenuObject.setString(菜单项命令ID,字符串,0/*_MF_BYCOMMAND*/) #

设置菜单项文本,
如果参数@3为0/*_MF_BYCOMMAND*/则参数@1为菜单命令ID

popmenuObject.setString(菜单项序号,字符串) #

设置菜单项文本

popmenuObject.subMenu() #

返回对象:popmenuObject

popmenuObject.subMenu(1) #

返回指定位置子菜单

win.ui 成员列表 #

win.ui.getMenu() #

返回对象:menuObject

win.ui.getMenu(hwnd) #

返回窗口菜单
参数@1可指定窗体对象或窗体句柄
返回的菜单对象不能添加菜单

win.ui.getSysMenu() #

返回对象:popmenuObject

win.ui.getSysMenu(winform) #

返回系统菜单
参数@1可指定窗体对象或窗体句柄
请事先导入win.ui.menu

win.ui.getSysMenu(winform,true) #

返回系统菜单
并重置为缺省状态
参数@1可指定窗体对象或窗体句柄
请事先导入win.ui.menu

win.ui.menu() #

返回对象:menuObject

返回对象:menuObject

win.ui.menu(窗口) #

创建窗口菜单
参数 @1 可指定窗口或控件对象,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效

win.ui.menu(窗口,菜单句柄) #

使用存在的菜单句柄创建菜单对象,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效

win.ui.popmenu #

创建弹出菜单
需要先调用 import win.ui.menu,不然发布后会报错。
开发环境下运行,为了加快启动速度,不会百分百排除所有没有引用的库

win.ui.popmenu() #

返回对象:popmenuObject

win.ui.popmenu(窗口) #

创建弹出菜单,
如果参数 @1 指定控件对象则自动转换为所在的父窗口对象。
如果参数 @1 传入窗口句柄,则添加菜单项无效

win.ui.popmenu(窗口,菜单句柄) #

使用存在的菜单句柄创建弹出菜单对象,
如果参数 @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

Markdown 格式