【第十章 10.3】列表框控件listbox -- 右键菜单
演示效果:
代码:
// 导入 win.ui 库,用于创建图形界面 import win.ui; // 导入 win.ui.menu 库,用于处理菜单 import win.ui.menu; /*DSG{{*/ // 创建一个名为 winform 的窗口对象,并设置其属性 var winform = win.form(text="aardio form";right=408;bottom=314;parent=...) // 向窗口中添加一个列表框控件,并设置其属性 winform.add( listbox={cls="listbox";left=15;top=16;right=392;bottom=290;bgcolor=16777215;db=1;dl=1;dr=1;dt=1;edge=1;items={"测试项目";"请在这里点击鼠标右键";"请在这里点击鼠标右键,测试项目"};z=1} ) /*}}*/ // 创建弹出菜单 winform.popmenu = win.ui.popmenu(winform); // 为弹出菜单添加"删除"选项,并设置其点击事件处理函数 winform.popmenu.add('删除',function(id){ // 点击"删除"时,删除列表框中的选中项 winform.listbox.delete() }) // 为列表框设置窗口过程函数 winform.listbox.wndproc = function(hwnd,message,wParam,lParam){ // 根据不同的消息进行处理 select( message ) { // 当鼠标右键弹起时 case 0x205/*_WM_RBUTTONUP*/{ // 获取鼠标位置 var x,y = win.getMessagePos(); // 获取鼠标点击位置对应的列表项 var item = winform.listbox.hitTest(x,y,true); // 如果有对应的列表项 if( item ){ // 设置列表框的选中项 winform.listbox.selIndex = item; // 在鼠标位置弹出菜单 winform.popmenu.popup(x,y,true) } } } } // 显示窗口 winform.show() // 启动界面线程消息循环 win.loopMessage();
相关回复
-
暂无评论!