修改默认的tabs高级选项卡项的close标签功能
By
admin
at 2018-05-09 • 1人收藏 • 1790人看过
去win.ui.tabs库里面可以看到
this.closeButton.oncommand = function(){ if( this.closeButton.hoverStrip) { this.deleteByStrip(this.closeButton.hoverStrip); this.closeButton.hoverStrip = null; }; this.closeButton.hide = true; }
上面就是原来的close按键功能,如果我们想要在项目中修改这个功能的话,我们可以直接引用这个函数,然后在函数里修改,如果只是增加功能,那么可以在函数的下面添加即可:
//修改默认的选项卡关闭按钮功能 headTabs.closeButton.oncommand = function(){ if( headTabs.closeButton.hoverStrip) { headTabs.deleteByStrip(headTabs.closeButton.hoverStrip); headTabs.closeButton.hoverStrip = null; }; headTabs.closeButton.hide = true; //上面的代码未动,只是修改了里面的this为实例对象 //下面增加:动态修改添加按钮位置 var x,y,cx,cy = headTabs.strips[#headTabs.strips].getPos(); mainForm.plus.setPos(x+cx+2,y); }
完整工程main.aardio如下:
import win.ui; /*DSG{{*/ mainForm = win.form(text="aardio form";right=1097;bottom=605;bgcolor=8421376;border="dialog frame") mainForm.add( custom={cls="custom";text="custom";left=0;top=35;right=1098;bottom=606;bgcolor=16777215;z=4}; plus={cls="plus";text="+";left=236;top=1;right=266;bottom=36;bgcolor=128;color=16777215;font=LOGFONT(h=-21);notify=1;z=3}; plus2={cls="plus";text="TestA";left=0;top=0;right=116;bottom=35;bgcolor=8388736;color=16777215;font=LOGFONT(h=-21);z=1}; plus3={cls="plus";text="TestB";left=119;top=1;right=235;bottom=36;bgcolor=8388736;color=16777215;font=LOGFONT(h=-21);z=2} ) /*}}*/ import win.ui.tabs; var headTabs = win.ui.tabs(mainForm.plus2,mainForm.plus3); headTabs.skin( background = { hover = 0xFFC000C0; default = 0xFF800080; }; color = { default = 0xFFffffff; hover = 0xFFffffff; } checked = { background = { hover = 0xFFffffff; default = 0xFFffffff; }; color = { default = 0xFF000000; hover = 0xFF000000; } } ) headTabs.clear(); headTabs.margin = 5; headTabs.add({ text="TestA"; hasCloseButton = true; },"\res\TestA.aardio") headTabs.add({ text="TestB"; hasCloseButton = true; },"\res\TestB.aardio") headTabs.add({ text="TestC"; hasCloseButton = true; }) headTabs.add({ text="TestD"; hasCloseButton = true; }) headTabs.selIndex = 1; var x,y,cx,cy = headTabs.strips[#headTabs.strips].getPos(); mainForm.plus.setPos(x+cx+2,y); //修改默认的选项卡关闭按钮功能 headTabs.closeButton.oncommand = function(){ if( headTabs.closeButton.hoverStrip) { headTabs.deleteByStrip(headTabs.closeButton.hoverStrip); headTabs.closeButton.hoverStrip = null; }; headTabs.closeButton.hide = true; var x,y,cx,cy = headTabs.strips[#headTabs.strips].getPos(); mainForm.plus.setPos(x+cx+2,y); } mainForm.plus.oncommand = function(id,event){ var x,y,cx,cy = headTabs.strips[#headTabs.strips].getPos(); if((mainForm.width-cx) <= (x+cx)){ mainForm.msgbox("超出界面了!") //mainForm.plus.hide = true; return; } headTabs.add({ text="NewPage"; hasCloseButton = true; }) var x,y,cx,cy = headTabs.strips[#headTabs.strips].getPos(); mainForm.plus.setPos(x+cx+2,y); } mainForm.onMouseDown = function(wParam,lParam){ mainForm.hitCaption(); } mainForm.enableDpiScaling(); mainForm.show(); return win.loopMessage();
1 个回复 | 最后更新于 2018-11-21
登录后方可回帖
完整的工程: