原生气泡提示框
By
admin
at 2020-01-11 • 0人收藏 • 1699人看过
感谢 aardio培训群: 圣地 分享代码 , 收藏备用
备注: 在 aardio v25.69版本及以后,jacen更新并新增了这个气泡提示功能到aardio中
win.ui.tooltip 中增加气泡提示
edit控件增加气泡提示功能
用起来更方便了.,可以偷懒了,哈
另外截取下jacen的提示:
气泡功能不支持richedit,plus控件,winform.plus.editable = "edit"这样就可以嵌入edit而不是richedit,不过edit不透明,但保持背景色与plus一致也可以冒充透明。
再次感谢jacen的辛苦付出.
新增功能的代码示例:
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add( btnError={cls="button";text="错误";left=280;top=306;right=390;bottom=353;z=2}; btnInfo={cls="button";text="提示";left=539;top=306;right=649;bottom=353;z=4}; btnWarning={cls="button";text="警告";left=410;top=306;right=520;bottom=353;z=3}; edit={cls="edit";text="Edit";left=129;top=179;right=394;bottom=218;edge=1;multiline=1;z=1} ) /*}}*/ winform.btnError.oncommand = function(id,event){ winform.edit.showErrorTip("这是标题","这是要显示的错误信息") } winform.btnWarning.oncommand = function(id,event){ winform.edit.showWarningTip("这是标题","这是要显示的错误信息") } winform.btnInfo.oncommand = function(id,event){ //最后一个参数如果为true就是大图标,这样可以利用智能提示,不需要去记一堆常量了 winform.edit.showInfoTip("这是标题","这是要显示的错误信息",true) } winform.show(); win.loopMessage();
以下是, 最初实现方式,
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=411;bottom=348) winform.add( button={cls="button";text="弹出提示";left=77;top=142;right=339;bottom=227;z=2}; edit={cls="edit";text="Edit";left=106;top=63;right=311;bottom=113;edge=1;multiline=1;z=1} ) /*}}*/ class EDITBALLOONTIP { INT cbStruct; ustring pszTitle; ustring pszText; int ttiIcon; } var ebt = EDITBALLOONTIP() ebt.cbStruct = raw.sizeof(EDITBALLOONTIP()) ebt.pszTitle = "错误" ebt.pszText= "这里输入不正确!" ebt.ttiIcon =3 winform.button.oncommand = function(id,event){ ::SendMessageByStruct(winform.edit.hwnd,0x1503/*EM_SHOWBALLOONTIP*/,0,ebt) } //https://stackoverflow.com/questions/23892594/show-tooltip-on-invalid-input-in-edit-control winform.show(); win.loopMessage();
一般使用 msgbox 这个用户操作要点确定,然后回到焦点
这个气球弹出提示可以保持焦点,发现错误后直接输入正确内容
那么有显示就有隐藏:
::SendMessageByStruct(winform.edit.hwnd,0x1504/*EM_HIDEBALLOONTIP*/,0,ebt)
顺便说下这个Icon,
一个INT类型的值,指定气泡图标的类型。值可以是以下之一:
值 | 意义 |
---|---|
TTI_ERROR | 显示一个错误图标 = 3 |
TTI_INFO | 显示一个信息图标 = 1 |
TTI_NONE | 不显示图标 = 0 |
TTI_WARNING | 显示警告图标 = 2 |
TTI_INFO_LARGE | 显示一个大信息图标 = 4 |
TTI_WARNING_LARGE | 显示一个大警告图标 = 5 |
TTI_ERROR_LARGE | 显示一个大错误图标 = 6 |
其他细节可以查阅msdn
https://docs.microsoft.com/zh-cn/windows/win32/api/commctrl/ns-commctrl-editballoontip?redirectedfrom=MSDN
登录后方可回帖