aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 6912|回复: 1

如果两个plus重叠在一起,并且都有事件回调,怎么才能响应最前面的控件事件?

[复制链接]

38

主题

129

回帖

1045

积分

荣誉会员

积分
1045
发表于 2017-10-27 14:41:39 | 显示全部楼层 |阅读模式
如题:

描述:
界面上有两个plus控件, 一个作为标题栏, 一个做右侧的关闭按钮 , 关闭plus在标题栏plus之上, 标题栏plus有个模拟拖动窗体事件, 关闭plus有个关闭窗体事件.

解决方案:设置按钮plus的父窗口控件为标题栏plus, 这样只会可以点击这个按钮了...但是问题又来了
//设置继承重叠响应通知
mainForm.topclose.setParent( mainForm.topbar );
但是问题又来了...

问题:
标题栏plus设置左右上边距固定, 这时候拖动窗体调整大小, 标题栏plus大小未变.!?

QQ截图20171027144144.jpg


  1. import win.ui;
  2. import gdip.fontAwesome;
  3. import win.ui.menu;
  4. /*DSG{{*/
  5. var winform = win.form(text="aardio form";right=192;bottom=544;bgcolor=12213772;border="none";parent=...)
  6. winform.add(
  7. topbar={cls="plus";text="文件夹";left=0;top=0;right=193;bottom=39;align="left";bgcolor=8929538;clipBk=false;color=16777215;dl=1;dr=1;dt=1;font=LOGFONT(name='微软雅黑';h=-19);notify=1;paddingLeft=10;z=1};
  8. topmenu={cls="plus";text='\uF0DD';left=154;top=0;right=193;bottom=39;bgcolor=8929538;color=16777215;dr=1;dt=1;font=LOGFONT(name='FontAwesome';h=-24);notify=1;paddingBottom=8;transparent=1;z=2}
  9. )
  10. /*}}*/

  11. /*顶菜单{{*/
  12. var topbarmenu = win.ui.popmenu(winform);
  13. topbarmenu.addTable( {
  14.         { "收起格子";  function(id){
  15.                 winform.msgbox("收起格子")
  16.         } };
  17.         { "显示方式";{
  18.                                         {
  19.                                                 "图标";        function(id){
  20.                                                         winform.msgbox("图标")
  21.                                                 }
  22.                                                
  23.                                         };
  24.                                         {
  25.                                                 "列表";        function(id){
  26.                                                         winform.msgbox("列表")
  27.                                                 }
  28.                                                
  29.                                         }
  30.                                 }
  31.        
  32.           };
  33.          { "排序方式";{
  34.                                         {
  35.                                                 "名称";        function(id){
  36.                                                         winform.msgbox("名称")
  37.                                                 }
  38.                                                
  39.                                         };
  40.                                         {
  41.                                                 "大小";        function(id){
  42.                                                         winform.msgbox("大小")
  43.                                                 }
  44.                                                
  45.                                         };
  46.                                         {
  47.                                                 "类型";        function(id){
  48.                                                         winform.msgbox("类型")
  49.                                                 }
  50.                                                
  51.                                         };
  52.                                         {
  53.                                                 "修改时间";        function(id){
  54.                                                         winform.msgbox("修改时间")
  55.                                                 }
  56.                                                
  57.                                         }
  58.                                 };
  59.        
  60.           };
  61.         { "重命名";  function(id){
  62.                         winform.msgbox("重命名")
  63.         } };
  64.         { "移除格子";  function(id){
  65.                         winform.msgbox("移除格子");
  66.                         winform.close();
  67.         } };
  68.           
  69. } )
  70. /*}}*/

  71. /*顶部导航{{*/
  72. winform.topbar.wndproc = function(hwnd,message,wParam,lParam){
  73.         select(message) {
  74.                 case 0x201/*_WM_LBUTTONDOWN*/ {
  75.                         winform.hitCaption();
  76.                 }
  77.         }
  78.         //无返回值则继续调用默认回调函数
  79. }


  80. winform.topmenu.skin(
  81.         color = {
  82.                 hover = 0xFFFF0000;
  83.         }
  84. )
  85. winform.topmenu.oncommand = function(id,event){
  86.         topbarmenu.popup();
  87. }
  88. //重叠响应通知
  89. winform.topmenu.setParent(winform.topbar);
  90. /*}}*/


  91. winform.transparent(120);


  92. /*
  93. //添加阴影边框
  94. import win.ui.shadow;
  95. win.ui.shadow( winform);
  96. */
  97.   
  98. //下面的代码为窗体添加可拖动改变大小的边框
  99. import win.ui.resizeBorder;
  100. win.ui.resizeBorder( winform );


  101. winform.enableDpiScaling();
  102. winform.show();

  103. win.loopMessage();
  104. return winform;
复制代码

170

主题

2182

回帖

1万

积分

管理员

积分
13226
发表于 2017-10-28 16:45:46 | 显示全部楼层
这个问题是标准库的问题,目前最新版已修正。
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-5-23 10:31 , Processed in 0.056177 second(s), 25 queries .

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

快速回复 返回顶部 返回列表