menu菜单增加图标方法
By
admin
at 2017-11-18 • 1人收藏 • 2493人看过
menu菜单栏增加图标的方法,
一般用到menu.add(...)即可,
var menuFile = win.ui.popmenu(winform);//创建弹出菜单 menuFile.add( "打开", function(id){ winform.msgbox("打开文件") } ) menuFile.add( text = "标题"; bitmap = "/toolbar.gif"; //bitmapCheckd = "选中位图句柄或路径、或图像数据,可选参数"; proc = function(id){ }; //id = 可选参数; //flag = 可选参数; );
但是这种写法有个弊端, 就是没写一个加一次,麻烦.
那么第二种就是可以了利用menu.addtable(...)
//------------------------------------ var menuHelp = win.ui.popmenu(winform);//创建弹出菜单 menuHelp.add( "关于", function(id){ winform.msgbox("关于") } ) menuHelp.add(); //添加分隔线 menuHelp.addTable( { { text = "帮助"; bitmap = "/toolbar.gif"; proc = function(id){ winform.msgbox("帮助") }; //id = 可选参数; //flag = 可选参数; }; { /*---分隔线---*/ }; { "退出"; function(id){ winform.close() } }; } )
这里需要注意:
addTable()中的写法, 每一个需要加图标的按钮都是一个表, 每个表里就和用add()是一样的写法,特别要注意那个函数proc = ... 这个我经常犯错..
两种方法达到同样的效果, 用哪个方便就看个人所需了....
2 个回复 | 最后更新于 2018-09-08
添加菜单的时候附加上是否失效功能:
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add( richedit={cls="richedit";text="RichEdit";left=113;top=148;right=637;bottom=447;edge=1;multiline=1;z=1} ) /*}}*/ import win.ui.menu; var mainmenu = win.ui.menu(winform);//创建主菜单 var menu = win.ui.popmenu( winform ) menu.addTable( { { "全选(&A)"; /*function(id){ richedit.selectAll() }*/ {{ "复制(&C)"; function(id){ }; 0}; { "剪切(&T)"; function(id){ }; 0 };}}; { /*分隔线*/ }; { "复制(&C)"; function(id){ richedit.copy() }; 0}; { "剪切(&T)"; function(id){ richedit.cut() }; 0 }; { "粘贴(&P)"; function(id){ richedit.paste() }; 0 }; { "删除(&D)"; function(id){ richedit.selText = ""; }; 0 }; { /*分隔线*/ }; { "撤消(&U)"; function(id){ richedit.undo() }; 0 }; { "重做(&R)"; function(id){ richedit.redo() }; 1 }; } ); mainmenu.add("菜单标题",menu) winform.richedit.wndproc = function(hwnd,message,wParam,lParam){ if(message = 0x204/*_WM_RBUTTONDOWN*/){ menu.popup() } //无返回值则继续调用默认回调函数 } winform.show() win.loopMessage();
登录后方可回帖
今天看richedit文本框代码,发现还有这种写法,可以使能或者失效相应的菜单项
于是,依葫芦
富媒体文本框示例代码就可以改成这种形式,不用写其他的启用形式