求助:在PLUS 控件上实现 悬停弹出菜单 要怎么写

夏末 17小时前 65

求助:在PLUS 控件上实现 悬停弹出菜单 要怎么写
鼠标悬停时 显示菜单  离开就关闭这个菜单
类似这个效果

最新回复 (1)
  • xiaobai 12小时前
    0 2
    import fonts.fontAwesome;
    import win.ui;
    import win.ui.menu;
    /*DSG{{*/
    mainForm = win.form(text="aardio工程13";right=503;bottom=351)
    mainForm.add(
    plus={cls="plus";text="按钮";left=128;top=64;right=227;bottom=94;align="left";bgcolor=-5197169;font=LOGFONT(h=-13);iconStyle={align="left";font=LOGFONT(h=-13;name='FontAwesome');padding={left=20}};iconText='\uF021';textPadding={left=39};z=1}
    )
    /*}}*/
    
    mainForm.plus.skin({
    	background={
    		default=0x668FB2B0;
    		disabled=0xFFCCCCCC;
    		hover=0xFF928BB3		
    	};
    	color={
    		default=0xFF000000;
    		disabled=0xFF6D6D6D		
    	}
    })
    
    mainForm.popmenu = win.ui.popmenu(mainForm);//创建弹出菜单
    mainForm.popmenu.add('&open',function(id){
    	//在下面输入菜单响应代码
    	
    });
    mainForm.popmenu.add();//分隔线
    mainForm.popmenu.add('&exit',function(id){ mainForm.close() })
    
    mainForm.popmenu.Visible = false
    
    //当鼠标指针移到静态控件上是
    
    mainForm.plus.wndproc = function(hwnd,message,wParam,lParam){
    	if(message = 0x200/*_WM_MOUSEMOVE*/ and mainForm.popmenu.Visible = false) { 
    			mainForm.popmenu.popup()
    		}	
    }
    
    
    
    //鼠标回到窗体上时
    mainForm.wndproc = function(hwnd,message,wParam,lParam){
    	if(message =  0x20/*_WM_SETCURSOR*/ and mainForm.popmenu.Visible = true){
    		//不会关闭
    	} 
    
    }
    
    
    
    mainForm.show();
    win.loopMessage();

    能弹出,不会关闭,范例里有个移入移出控件改变鼠标形状的。

返回
发新帖