用plus新增的menu.popup实现dropdown下拉框
By
admin
at 2019-12-05 • 0人收藏 • 2145人看过
注意:
jacen在 aardio 新版 V24.15版本已增加了官方plus模拟下拉文本框的范例,
需要此功能的去看这个示例.

位置如下:

以下 , 是我自己之前写的模拟下拉框, 纯粹作为学习过程参考整理.

以上 plus的menu.popup功能需要更新aardio到最新版v24.13以上
感谢jacen增加的这个功能.
用到的图片素材如下:





主界面代码如下:
import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio工程43";right=292;bottom=279;bgcolor=15780518)
mainForm.add(
plus={cls="plus";text="示例二";left=38;top=70;right=221;bottom=111;align="left";background="\res\bg.png";font=LOGFONT(h=-16;name='微软雅黑');notify=1;repeat="center";textPadding={left=14};z=1};
plus2={cls="plus";text="示例一";left=38;top=109;right=221;bottom=150;align="left";font=LOGFONT(h=-16;name='微软雅黑');foreRepeat="expand";foreground="\res\qj1.png";notify=1;repeat="center";textPadding={left=14};z=2};
plus3={cls="plus";text="示例二";left=38;top=149;right=221;bottom=190;align="left";background="\res\bg.png";font=LOGFONT(h=-16;name='微软雅黑');foreRepeat="expand";foreground="\res\qj1.png";notify=1;repeat="center";textPadding={left=14};z=3}
)
/*}}*/
mainForm.plus.skin(
background = {
default = "\res\bg.png";
hover = "\res\bg2.png";
active = "\res\bg3.png";
foucus = "\res\bg3.png";
}
checked = {
background = {
default = "\res\bg3.png";
}
};
)
import win.ui.tabs;
var menu = win.ui.tabs(mainForm.plus2,mainForm.plus3)
menu.skin({
foreground={
default = "\res\qj1.png";
hover = "\res\qj2.png";
};
checked = {
foreground={
default = "\res\qj2.png";
hover = "\res\qj2.png";
};
};
})
menu.oncommand = function(strip,id,event){
mainForm.plus.checked = false;
mainForm.plus.text = strip.text;
}
mainForm.plus.oncommand = function(id,event){
mainForm.plus.checked = true;
//selText功能为24.11版本新增,请确保aardio已更新到最新
menu.selText = mainForm.plus.text
menu.popup(true,owner)
}
menu.add({
text='示例三';
})
menu.add({
text='示例四';
})
menu.add({
text='示例五';
})
menu.initPopup();
menu.onFocusLost = function(hFocus){
mainForm.plus.checked = false;
}
mainForm.show();
return win.loopMessage();完整工程下载:
链接:https://pan.baidu.com/s/191DycKjstVKeyRqg_3SzVQ
提取码:0i9i
2 个回复 | 最后更新于 2019-12-14
登录后方可回帖
vip群: 撒旦微笑 提供了非图片版本
import fonts.fontAwesome; import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=345;bottom=290;bgcolor=15780518) winform.add( menu={cls="plus";text="菜单";left=50;top=54;right=248;bottom=83;bgcolor=15592941;iconStyle={align="right";font=LOGFONT(name='FontAwesome');padding={right=10}};iconText='\uF078';notify=1;z=3}; plus={cls="plus";text="复制";left=50;top=83;right=248;bottom=112;iconStyle={align="left";font=LOGFONT(name='FontAwesome');padding={left=9}};iconText=" ";notify=1;z=1}; plus2={cls="plus";text="粘贴";left=50;top=112;right=248;bottom=144;iconStyle={align="left";font=LOGFONT(name='FontAwesome');padding={left=9}};iconText=" ";notify=1;z=2} ) /*}}*/ import win.ui.tabs; var menu = win.ui.tabs(winform.plus,winform.plus2); var menuTheme = { color = { default = 0xFF06000F; }; foreground={ default = 0xFFFFFFFF; hover= 0xFFF7F7F7; }; checked = { color = { default = 0xFF6A58C9; }; foreground={ default = 0xFFFAFAFA; }; iconText = '\uF00C'; } }; menu.skin(menuTheme) menu.oncommand = function(strip,id,event){ winform.menu.text = strip.text; } menu.onFocusLost = function(hLostFocus){ winform.menu.checked = false; } winform.menu.skin({ checked = { iconText = '\uF077'; } }) winform.menu.oncommand = function(id,event){ winform.menu.checked = (winform.menu.checked==true) ? true : false menu.selText = winform.menu.text if(winform.menu.checked ){ menu.popup(true,owner) }else { menu.popup(false,owner) } } menu.add({ text='剪切'; }) menu.add({ text='全选'; }) menu.initPopup() winform.show() win.loopMessage();