
win11系统下,可使用以下代码简单实现:
1、升级新库:
Code AardioLine:34复制
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.import
win
.ui;import
win
.ui.tooltip;import
godking.comboboxEx;var
winform = win
.form(text="aardio Form"
;right=544
;bottom=311
;border="thin"
)- winform.add(
- dropdown={cls=
"comboboxEx"
;left=127
;top=169
;right=393
;bottom=193
;bgcolor=32768
;dl=1
;dt=1
;mode="dropdown"
;z=2
}; - dropdownlist={cls=
"comboboxEx"
;left=127
;top=84
;right=393
;bottom=108
;bgcolor=32768
;dl=1
;dt=1
;mode="dropdownlist"
;z=1
} - )
- /
var
tooltipCtrl = win
.ui.tooltip( winform ); var
balloonTipCtrl = win
.ui.tooltip.tracking(winform,false
); - winform.dropdownlist.onMouseEnter =
function
(){ -
var
x,y,cx,cy = winform.dropdownlist.getPos(true
); - balloonTipCtrl.setText(winform.dropdownlist.className++
" 模式:dropdownlist"
).trackPopup(true
,x+120
,y+cy ); - }
- winform.dropdownlist.onMouseLeave =
function
(){ - balloonTipCtrl.trackPopup(
false
); - }
- winform.dropdown.onMouseEnter =
function
(){ -
var
x,y,cx,cy = winform.dropdown.getPos(true
); - balloonTipCtrl.setText(winform.dropdownlist.className++
" 模式:dropdown"
).trackPopup(true
,x+120
,y+cy ); - }
- winform.dropdown.onMouseLeave =
function
(){ - balloonTipCtrl.trackPopup(
false
); - }
-
- winform.show()
win
.loopMessage();
2、使用旧库:
Code AardioLine:49复制
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.import
win
.ui;import
win
.ui.tooltip;import
godking.comboboxEx;var
winform = win
.form(text="aardio Form"
;right=544
;bottom=311
;border="thin"
)- winform.add(
- dropdown={cls=
"comboboxEx"
;left=127
;top=169
;right=393
;bottom=193
;bgcolor=32768
;dl=1
;dt=1
;mode="dropdown"
;z=2
}; - dropdownlist={cls=
"comboboxEx"
;left=127
;top=84
;right=393
;bottom=108
;bgcolor=32768
;dl=1
;dt=1
;mode="dropdownlist"
;z=1
} - )
var
tooltipCtrl = win
.ui.tooltip( winform );var
balloonTipCtrl = win
.ui.tooltip.tracking(winform,false
); import
win
.subclass;var
curcrtl; win
.subclass(- winform.dropdownlist._hwndCombobox,
function
(hwnd,message,wParam,lParam) { -
if
message===0x200 { -
if
curcrtl===hwnd return
; - curcrtl=hwnd;
-
var
x,y,cx,cy = winform.dropdownlist.getPos(true
); - balloonTipCtrl.setText(winform.dropdownlist.className++
" 模式:dropdownlist"
).trackPopup(true
,x+120
,y+cy ); - }
elseif
message===0x02A3 { - curcrtl=
null
; - balloonTipCtrl.trackPopup(
false
); - }
- }
- )
win
.subclass(- winform.dropdown._hwndEdit,
function
(hwnd,message,wParam,lParam) { -
if
message===0x200 { -
if
curcrtl===hwnd return
; - curcrtl=hwnd;
-
var
x,y,cx,cy = winform.dropdown.getPos(true
); - balloonTipCtrl.setText(winform.dropdown.className++
" 模式:dropdown"
).trackPopup(true
,x+120
,y+cy ); - }
elseif
message===0x02A3 { - curcrtl=
null
; - balloonTipCtrl.trackPopup(
false
); - }
- }
- )
-
- winform.show()
win
.loopMessage();
3、兼容旧版系统:
经测试,在winserver2008系统上,dropdown模式下,有可能触发不了鼠标离开事件。
改了一下,下面的代码可无错运行。测试系统:win11、winserver2008。
Code AardioLine:39复制
1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.import
win
.ui;import
win
.ui.tooltip;import
godking.comboboxEx;var
winform = win
.form(text="aardio Form"
;right=544
;bottom=311
;border="thin"
)- winform.add(
- dropdown={cls=
"comboboxEx"
;left=127
;top=169
;right=393
;bottom=193
;bgcolor=32768
;dl=1
;dt=1
;mode="dropdown"
;z=2
}; - dropdownlist={cls=
"comboboxEx"
;left=127
;top=84
;right=393
;bottom=108
;bgcolor=32768
;dl=1
;dt=1
;mode="dropdownlist"
;z=1
} - )
var
tooltipCtrl = win
.ui.tooltip( winform );var
balloonTipCtrl = win
.ui.tooltip.tracking(winform,false
); var
curcrtl; - winform.wndproc =
function
(hwnd,message,wParam,lParam){ -
if
message = 0x200{ -
if
curcrtl { - curcrtl =
null
; - balloonTipCtrl.trackPopup(
false
); - }
- }
- }
- winform.dropdownlist.onMouseEnter =
function
(){ - curcrtl=
1
; -
var
x,y,cx,cy = winform.dropdownlist.getPos(true
); - balloonTipCtrl.setText(winform.dropdownlist.className++
" 模式:dropdownlist"
).trackPopup(true
,x+120
,y+cy ); - }
- winform.dropdown.onMouseEnter =
function
(){ - curcrtl=
1
; -
var
x,y,cx,cy = winform.dropdown.getPos(true
); - balloonTipCtrl.setText(winform.dropdownlist.className++
" 模式:dropdown"
).trackPopup(true
,x+120
,y+cy ); - }
-
- winform.show()
win
.loopMessage();