godking.comboboxEx 气泡提示的问题

mndsoft 4月前 491

卢大师,打扰,请教一个 godking.comboboxEx 气泡提示的问题,godking.comboboxEx 貌似没有.onMouseLeave 和 .onMouseEnter 事件,我分别用 eachControl枚举控件 和 .wndproc消息捕获,好像aardio标准控件都可以实现,godking.comboboxEx不显示,请教如何实现?

import win.ui;
import win.ui.tooltip;
import godking.comboboxEx;
/*DSG{{*/
var winform = win.form(text="aardio Form";right=544;bottom=311;parent=...)
winform.add(
button={cls="button";text="光标位置tooltip";left=90;top=45;right=210;bottom=77;font=LOGFONT(name='SimSun');z=1};
button2={cls="button";text="固定位置tooltip";left=90;top=110;right=210;bottom=142;font=LOGFONT(name='SimSun');z=2};
button3={cls="button";text="控件tooltip";left=90;top=175;right=210;bottom=207;font=LOGFONT(name='SimSun');z=3};
cmbAdapter={cls="comboboxEx";left=257;top=195;right=523;bottom=219;acceptfiles=1;dl=1;dt=1;z=6};
combobox={cls="combobox";left=246;top=117;right=511;bottom=143;edge=1;items={};mode="dropdown";z=5};
edit={cls="edit";text="气泡弹出提示";left=90;top=240;right=210;bottom=272;edge=1;z=4}
)
/*}}*/

//在所有者窗口 winform 上创建 tooltip 提示控件 
var tooltipCtrl = win.ui.tooltip( winform );
var balloonTipCtrl = win.ui.tooltip.tracking(winform,false);	

winform.cmbAdapter.valueType = type.string;

winform.cmbAdapter.add("网卡1",0/*图片索引*/,"192.168.1.100"/*附加数据*/,0/*右缩进值*/)
winform.cmbAdapter.add("网卡2",0/*图片索引*/,"192.168.0.100"/*附加数据*/,0/*右缩进值*/)

		
winform.wndproc = function(hwnd,message,wParam,lParam){
    select( message ) { 
        case 0x200/*_WM_MOUSEMOVE*/{
            balloonTipCtrl.trackPopup(false); //手动关闭提示
        }
    }
}

import console
//枚举控件显示气泡
for(name,ctrl in winform.eachControl() ){
    if(ctrl){
        ctrl.wndproc = function(hwnd,message,wParam,lParam){
             select( message ) { 
                case 0x200{   //_WM_MOUSEMOVE
                var x,y,cx,cy = ctrl.getPos(true);                    
                //手动显示提示
                //console.log(ctrl.className)
                 balloonTipCtrl.setText(ctrl.className).trackPopup(true,x+120,y+cy );
                }
            }
        }
        
    }
}

/* 
//wndproc获取气泡提示
winform.cmbAdapter.wndproc = function(hwnd,message,wParam,lParam){
     select( message ) { 
           case 0x200 {  //_WM_MOUSEMOVE
                var x,y,cx,cy = winform.cmbAdapter.getPos(true);                    
                        //气泡提示
                balloonTipCtrl.setText("IP地址").trackPopup(true,x+120,y+cy );                    
                    
} }}
*/

winform.show() 
win.loopMessage();
return winform;


最新回复 (4)
  • 光庆 4月前
    0 2
    import win.ui;
    import win.ui.tooltip;
    import godking.comboboxEx;
    /*DSG{{*/
    var winform = win.form(text="aardio Form";right=544;bottom=311;parent=...)
    winform.add(
    button={cls="button";text="光标位置tooltip";left=90;top=45;right=210;bottom=77;font=LOGFONT(name='SimSun');z=1};
    combobox={cls="combobox";left=246;top=117;right=511;bottom=143;edge=1;items={};mode="dropdown";z=5};
    comboboxEx={cls="comboboxEx";left=257;top=195;right=523;bottom=219;acceptfiles=1;dl=1;dt=1;z=6};
    )
    /*}}*/
    
    winform.show() 
    
    import win.ui.tooltip; 
    var tooltipCtrl = win.ui.tooltip( winform );
    tooltipCtrl.addTool(winform.comboboxEx._hwndCombobox,"这是一个comboboxEx" )
    tooltipCtrl.addTool(winform.button,"这是一个按钮" )
    tooltipCtrl.addTool(winform.combobox,"这是一个combobox" )
    
    win.loopMessage();
    return winform;


  • mndsoft 4月前
    0 3
    普通样式的 tips我开始试过可以的,但 气泡样式 的tips不知道为何不行,算了,不钻牛角尖了,感谢!
  • 光庆 4月前
    0 4
    mndsoft 普通样式的 tips我开始试过可以的,但 气泡样式 的tips不知道为何不行,算了,不钻牛角尖了,感谢!

    代码如下:

    import win.subclass
    win.subclass(
        winform.cmbAdapter._hwndCombobox,function (hwnd,message,wParam,lParam) { 
                 select( message ) { 
                    case 0x200{   //_WM_MOUSEMOVE
    	                var x,y,cx,cy = winform.cmbAdapter.getPos(true);                    
        	            balloonTipCtrl.setText(winform.cmbAdapter.className).trackPopup(true,x+120,y+cy );
                    }
                }        
        })


  • 光庆 4月前
    0 5
    mndsoft 普通样式的 tips我开始试过可以的,但 气泡样式 的tips不知道为何不行,算了,不钻牛角尖了,感谢!

    更详细的方法,看这篇文章:https://aardio.online/thread-355.htm

返回