【第八章8.3】 窗口控件 -- 按钮嵌按钮
按钮控件:
代码:
//按钮嵌按钮 import win.ui; import win.ui.menu; /*DSG{{*/ var winform = win.form(text="按钮中嵌按钮";right=599;bottom=399;parent=...) winform.add( btnInner={cls="button";text="4";left=183;top=47;right=209;bottom=77;dr=1;dt=1;font=LOGFONT(charset=2;name='Marlett';weight=500);z=2}; button={cls="button";text="按钮中按钮";left=53;top=43;right=213;bottom=83;dr=1;dt=1;z=1} ) /*}}*/ /* winform.btnInner 与 winform.button 必须设置相同的固定边距属性 - 以保持在缩放时移动到相同位置 */ //设置父窗口 (可以理解为:子按钮绑定到哪个父按钮上) winform.btnInner.setParent( winform.button ) //允许父窗口转发子窗口的命令(_WM_COMMAND)与通知(_WM_NOTIFY)消息 。 // 没有这个命令,子按钮点击会没有任何效果 winform.button.translateCommand(); /* 响应命令。 _WM_COMMAND 是由控件发送给父窗口, 父窗口解析此消息才能调用控件的 oncommand 函数。 父窗口必须调用 translateCommand() 函数, */ winform.btnInner.oncommand = function(id,event){ //按下鼠标右键,下面获取按钮屏幕坐标 var rc = winform.btnInner.getRect(true/*使用屏幕坐标*/) //创建弹出菜单 win.ui.popmenu(winform).addTable( { { "测试"; function(id){ winform.msgbox("测试") } }; { "退出程序"; function(id){ winform.close() } }; } ).popup(rc.left,rc.bottom,true/*使用屏幕坐标*/) } winform.show() win.loopMessage();
效果演示:
相关回复
-
暂无评论!