SOUI官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 63|回复: 3

不使用控件数组、控件模块的情况下访问相同name控件的方法

[复制链接]
  • TA的每日心情
    开心
    前天 08:28
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    85

    主题

    229

    帖子

    2294

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2294
    发表于 2019-8-13 10:20:47 | 显示全部楼层 |阅读模式

    两个window中的具有相同name的button,程序可实现一个button点击事件可响应不同窗口中的button点击事件,也就是点击按钮1(name="name_button")时和按钮2(name="name_button")时,可判断是哪个button触发了点击事件。
    1. <SOUI name="mainWindow" title="@string/title" bigIcon="ICON_LOGO:32" smallIcon="ICON_LOGO:16" width="600" height="400"  margin="5,5,5,5"  resizable="1" wndType="appMain"
    2. appWnd="1"
    3. translucent="1"
    4. >
    5.   <root skin="_skin.sys.wnd.bkgnd" cache="1">
    6.     <caption pos="0,0,-0,30" show="1" font="adding:0">
    7.       <icon pos="10,8" src="ICON_LOGO:16"/>
    8.       <text pos="29,9">@string/title</text>
    9.       <imgbtn name="btn_close" skin="_skin.sys.btn.close"    pos="-45,0" tip="close" animate="1"/>
    10.       <imgbtn name="btn_max" skin="_skin.sys.btn.maximize"  pos="-83,0" animate="1" />
    11.       <imgbtn name="btn_restore" skin="_skin.sys.btn.restore"  pos="-83,0" show="0" animate="1" />
    12.       <imgbtn name="btn_min" skin="_skin.sys.btn.minimize" pos="-121,0" animate="1" />
    13.     </caption>
    14.     <window pos="5,[2,-5,-5" layout="vbox">
    15.       <window name="window1" size="-2,0" weight="1">
    16.         <text pos="|0,|0" offset="-0.5,-0.5">这是一个由SOUI向导生成的APP框架</text>
    17.         <button name="name_button" pos="0,30"  size="96,32" colorText="#000000" skin="_skin.sys.btn.normal">按钮1</button>
    18.       </window>
    19.       <window name="window2" size="-2,0" weight="1">
    20.         <text pos="|0,|0" offset="-0.5,-0.5">这是一个由SOUI向导生成的APP框架</text>
    21.         <button name="name_button" pos="0,100" size="96,32" colorText="#000000" skin="_skin.sys.btn.normal">按钮2</button>
    22.       </window>
    23.     </window>
    24.   </root>
    25. </SOUI>
    复制代码
    设置触发
    1. void OnButtonCLick(EventArgs *e);


    2. protected:
    3.         //soui消息
    4.         EVENT_MAP_BEGIN()
    5.                 EVENT_NAME_COMMAND(L"btn_close", OnClose)
    6.                 EVENT_NAME_COMMAND(L"btn_min", OnMinimize)
    7.                 EVENT_NAME_COMMAND(L"btn_max", OnMaximize)
    8.                 EVENT_NAME_COMMAND(L"btn_restore", OnRestore)
    9.                 EVENT_ID_HANDLER(R.id.name_button, EventCmd::EventID, OnButtonCLick)
    10.         EVENT_MAP_END()
    复制代码
    触发后的操作
    1. void CMainDlg::OnButtonCLick(EventArgs *e)
    2. {
    3.         SWindow *sender = sobj_cast<SWindow>(e->sender);
    4.         if(sender->GetParent()->GetID()==R.id.window1)
    5.         {
    6.                 SMessageBox(NULL,_T("窗口1中的button"),_T("提示"),0);
    7.                 return;
    8.         }
    9.         else
    10.         {
    11.                 SMessageBox(NULL,_T("窗口2中的button"),_T("提示"),0);
    12.                 return;
    13.         }
    14. }
    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    该用户从未签到

    2

    主题

    84

    帖子

    246

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    246
    发表于 2019-8-13 10:21:49 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情

    前天 09:41
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    0

    主题

    15

    帖子

    249

    积分

    02:00元婴期

    Rank: 3Rank: 3

    积分
    249
    发表于 2019-8-13 10:26:52 | 显示全部楼层
    就这东西还需要S币
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 08:28
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    85

    主题

    229

    帖子

    2294

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    2294
     楼主| 发表于 2019-8-13 10:51:07 | 显示全部楼层
    lemon 发表于 2019-8-13 10:26
    就这东西还需要S币

    核心代码全贴出来了,不想下附件直接抄代码呀
    为什么要币,因为要鼓励大家发贴交流经验
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2019-8-25 21:16

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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