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("菜单标题",function(){  
    /*点击菜单项的回调函数,  
注意添加菜单项以后 add 函数返回菜单命令ID*/  

})

menuObject.add("标题",子菜单)

添加子菜单
返回添加的子菜单

menuObject.add()

添加分隔线

menuObject.add(参数表)

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

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( 1 )

在指定位置插入分隔线

menuObject.insert(位置,标题,回调函数)

menuObject.insert(1,"菜单标题",function(){  
    /*点击菜单项的回调函数,  
注意添加菜单项以后 insert 函数返回菜单命令ID*/  

})

menuObject.insert(参数表)

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

menuObject.onMenuItemClick

menuObject.onMenuItemClick = function(id){
    menuFile.selId = 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("菜单标题",function(){  
    /*点击菜单项的回调函数,  
注意添加菜单项以后 add 函数返回菜单命令ID*/  

})

popmenuObject.add("标题",子菜单)

添加子菜单
返回添加的子菜单

popmenuObject.add()

添加分隔线

popmenuObject.add(参数表)

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

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(id,hwnd)

调用菜单回调函数
可选指定接收命令的窗体句柄
可添加任意个附加参数

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( 1 )

在指定位置插入分隔线

popmenuObject.insert(位置,标题,回调函数)

popmenuObject.insert(1,"菜单标题",function(){  
    /*点击菜单项的回调函数,  
注意添加菜单项以后 insert 函数返回菜单命令ID*/  

})

popmenuObject.insert(参数表)

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

popmenuObject.onMenuItemClick

popmenuObject.onMenuItemClick = function(id){
    menuFile.selId = id;/*指定默认菜单回调函数*/
}

popmenuObject.ownerDraw

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

popmenuObject.popId

弹出菜单并返回用户点选ID

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

弹出菜单
并返回用户点选ID
未选择或发生错误则返回零,
如果不指定坐标,则自动获取鼠标当前位置,
可选用参数@4指定 TPM 前缀的选项,
例如 _TPM_BOTTOMALIGN 指定坐标 y 指定菜单底部位置

popmenuObject.popup

弹出菜单

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

弹出菜单
如果不指定坐标,则自动获取鼠标当前位置,
可选用参数@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 格式