【第十章 10.3】列表框控件listbox -- 右键菜单

贴主:admin 发贴:2024-08-09 08:51 浏量:10

演示效果:

代码:

// 导入 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();


相关回复


    暂无评论!

发表回复