当前位置: 代码迷 >> 综合 >> aardio - plus编辑框特效
  详细解决方案

aardio - plus编辑框特效

热度:76   发布时间:2024-01-14 01:45:06.0

1、垂直对齐

 

2、鼠标移入移出、编辑框编辑状态时,不同的边框颜色。

效果:

代码:

import win.ui;
/*DSG{
   {*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
plus={cls="plus";left=158;top=125;right=621;bottom=157;align="left";border={color=-2236963;width=1};color=255;editable="edit";font=LOGFONT(h=-16;name='Fixedsys');notify=1;textPadding={left=5;top=1;right=1;bottom=1};z=1}
)
/*}}*/winform.show();
winform.plus.editBox.setCueBannerText("请在此输入内容:")
var setcolor=function(c){winform.plus.border = {color=c;width=1}winform.plus.redraw()
}
var crect = winform.plus.editBox.getClientRect();
var rect = winform.plus.editBox.getRect();
rect.top += (rect.bottom-rect.top-(crect.bottom-crect.top))/2;
winform.plus.editBox.setRect(rect);
winform.plus.backgroundColor = ..gdi.argbReverse(winform.plus.editBox.bgcolor);
winform.plus.redraw()
winform.plus.onMouseEnter = function(wParam,lParam){setcolor(0xFF999999);winform.plus.capture=true
}
winform.plus.editBox.onFocusGot = function(){ setcolor(0xFFFF0000);winform.plus.capture=true	
}
winform.plus.editBox.onFocusLost = function(){import mousevar x,y = mouse.getPos();var rect = winform.plus.getRect(true);if ::PtInRect(rect,x,y) {setcolor(0xFF999999);} else {setcolor(0xFFDDDDDD);winform.plus.capture=false	}
}
winform.plus.editBox.onOk = function(){ winform.setFocus()return true; 	
}
winform.plus.onMouseMove = function(wParam,lParam){var x,y = win.getMessagePos(lParam);var rect = winform.plus.getRect(true);if !(x>0 and y>0 and x<rect.right-rect.left and y<rect.bottom-rect.top) {if win.getFocus()!=winform.plus.editBox.hwnd{setcolor(0xFFDDDDDD);winform.plus.capture=false}}
}
winform.plus.onMouseDown = function(wParam,lParam){var x,y = win.getMessagePos(lParam);var rect = winform.plus.getRect(true);if !(x>0 and y>0 and x<rect.right-rect.left and y<rect.bottom-rect.top) {winform.setFocus()}    
}
win.loopMessage();