炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5733|回复: 6

动态创建的控件能有ItemID吗?

[复制链接]

该用户从未签到

发表于 2016-2-16 15:59:35 | 显示全部楼层 |阅读模式
10炫彩币
本帖最后由 pediyzhi 于 2016-2-16 16:02 编辑

动态创建的控件能有ItemID吗?

模板里 <shapeText itemID="1"
动态的话怎么做?
就像List - 多选,插入,删除示例. 里的
  1. <?xml version="1.0" ?>
  2. <xc_template_list>
  3.     <listHeader_item>
  4.         <layoutObject type="item" layout.horizon="true" layout.alignH="left"  layout.alignV="center" layout.width="fill" layout.height="fill" layout.space=6 layout.padding="5,2,2,2" >
  5.             <shapeText itemID=1 layout.width="auto" layout.height="fill" content="{binding field=name source=data bSync=false}" />
  6.         </layoutObject>
  7.         <layoutObject type="item" layout.horizon="true" layout.alignH="left"  layout.alignV="center" layout.width="fill" layout.height="fill" layout.space=6 layout.padding="5,2,2,2" >
  8.             <shapeText itemID=1 layout.width="auto" layout.height="fill" content="{binding field=name2 source=data bSync=false}" />
  9.         </layoutObject>
  10.         <layoutObject type="item" layout.horizon="true" layout.alignH="left"  layout.alignV="center" layout.width="fill" layout.height="fill" layout.space=6 layout.padding="5,2,2,2" >
  11.             <shapeText itemID=1 layout.width="auto" layout.height="fill" content="{binding field=name3 source=data bSync=false}" />
  12.         </layoutObject>
  13.     </listHeader_item>
  14.     <list_Item>
  15.         <layoutObject type="item" layout.horizon="true" layout.alignH="left"  layout.alignV="center" layout.width="fill" layout.height="fill" layout.space=6 layout.padding="2,2,2,2" >
  16.             <shapeText itemID=1 layout.width="auto" layout.height="fill" content="{binding field=name source=data bSync=false}" />
  17.             <buttonUI itemID=11  width="60" height="18" content="{binding field=name source=data bSync=false}" />
  18.         </layoutObject>
  19.         <layoutObject type="item" layout.horizon="true" layout.alignH="left"  layout.alignV="center" layout.width="fill" layout.height="fill" layout.space=2 layout.padding="2,2,2,2" >
  20.             <shapeText itemID=2 layout.width="auto" layout.height="fill" content="{binding field=name2 source=data bSync=false}" />
  21.             <buttonUI itemID=22  width="70" height="18" content="{binding field=name2 source=data bSync=false}" />
  22.         </layoutObject>
  23.         <layoutObject type="item" layout.horizon="true" layout.alignH="left"  layout.alignV="center" layout.width="fill" layout.height="fill" layout.space=2 layout.padding="2,2,2,2" >
  24.             <shapeText itemID=3 layout.width="auto" layout.height="fill" content="{binding field=name3 source=data bSync=false}" />
  25.             <buttonUI itemID=33  width="70" height="18" content="{binding field=name3 source=data bSync=false}" />
  26.         </layoutObject>
  27.     </list_Item>
  28. </xc_template_list>
复制代码
这个 <shapeText itemID=2 如果是动态创建的话怎么做啊

最佳答案

查看完整内容

楼主,你要的效果在此 http://pan.baidu.com/s/1i3Ut3YP

该用户从未签到

发表于 2016-2-16 15:59:36 | 显示全部楼层
楼主,你要的效果在此

http://pan.baidu.com/s/1i3Ut3YP
回复

使用道具 举报

该用户从未签到

发表于 2016-2-16 16:08:31 | 显示全部楼层
你说的是ID吧,模板暂时不能用代码创建。。。


void WINAPI XEle_SetID  ( HELE  hEle,  
  int  id  
)   


设置元素ID.
参数:
hEle 元素句柄.  
id ID值.  
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-2-16 16:11:31 | 显示全部楼层
dasemimi 发表于 2016-2-16 16:08
你说的是ID吧,模板暂时不能用代码创建。。。

动态创建的list控件元素下是不是默认就有shapeText 控件? 如果有的话该怎么设置成id? 或者有什么别的方法能用XList_GetTemplateObject 得到?
回复

使用道具 举报

该用户从未签到

发表于 2016-2-16 16:20:33 | 显示全部楼层
不用设置itemid 如果是这样,你可以换个思路

在模板创建完成事件中,使用 这个函数,就能获取到了。
XLayout_GetChild ()

至于其他的,你可以用。。。 回调函数的参数。。。

int CALLBACK OnListTemplateCreateEnd(list_item_i* pItem,BOOL *pbHandled);

pitem 中有索引,是第一列,还是第二列,自己 switch一下就可以了
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-2-16 16:46:09 | 显示全部楼层
  1. class CMyWindowList
  2. {
  3. public:
  4.         HWINDOW m_hWindow;
  5.         HELE    m_hList;
  6.         CMyWindowList()
  7.         {
  8.                 Init();
  9.         }

  10.         void Init()
  11.         {
  12.                 m_hWindow = XWnd_Create(0, 0, 550, 380, L"炫彩界面库窗口", NULL, xc_window_style_default);
  13.                 XBtn_SetType(XBtn_Create(5, 3, 60, 20, L"Close", m_hWindow), button_type_close);

  14.                 m_hList = XList_Create(20, 40, 500, 300, m_hWindow);
  15.                 XList_SetItemTemplateXML(m_hList, L"XML-template\\List_Item.xml");
  16.                 XSView_SetLineSize(m_hList, 20, 20);

  17.                 XList_AddColumn(m_hList, 100);
  18.                 XList_AddColumn(m_hList, 100);
  19.                 XList_AddColumn(m_hList, 100);

  20.                 HXCGUI hAdapterHeader = XAdapterMap_Create();
  21.                 XList_BindAdapterHeader(m_hList, hAdapterHeader);
  22.                 XAdapterMap_AddItemText(hAdapterHeader, (XC_NAME), L"aaa");
  23.                 XAdapterMap_AddItemText(hAdapterHeader, (XC_NAME2), L"bbb");
  24.                 XAdapterMap_AddItemText(hAdapterHeader, (XC_NAME3), L"ccc");
  25.                 XAdapterMap_AddItemText(hAdapterHeader, (XC_NAME4), L"test");

  26.                 HXCGUI hAdapter = XAdapterTable_Create();
  27.                 XList_BindAdapter(m_hList, hAdapter);
  28.                 XAdapterTable_AddColumn(hAdapter, (XC_NAME));
  29.                 XAdapterTable_AddColumn(hAdapter, (XC_NAME2));
  30.                 XAdapterTable_AddColumn(hAdapter, (XC_NAME3));

  31.                 XList_SetColumnWidth(m_hList, 0, 150);
  32.                 XList_SetColumnWidth(m_hList, 1, 150);
  33.                 XList_SetColumnWidth(m_hList, 2, 150);

  34.                 XEle_RegEventCPP(m_hList, XE_LIST_TEMP_CREATE_END, &CMyWindowList::OnListTemplateCreateEnd);

  35.                 wchar_t tmp[MAX_PATH] = { 0 };
  36.                 for (int i = 0; i < 20; i++) {
  37.                         wsprintf(tmp, L"item-%d", i);
  38.                         XAdapterTable_AddItemText(hAdapter, tmp);

  39.                         wsprintf(tmp, L"child-%d-1", i);  XAdapterTable_SetItemText(hAdapter, i, 1, tmp);
  40.                         wsprintf(tmp, L"child-%d-2", i);  XAdapterTable_SetItemText(hAdapter, i, 2, tmp);
  41.                 }

  42.                 XWnd_ShowWindow(m_hWindow, SW_SHOW);
  43.         }


  44.         int OnListTemplateCreateEnd(list_item_i *pItem, BOOL *pbHandled)
  45.         {
  46.                 list_item_i item;
  47.                 memcpy(&item, pItem, sizeof(list_item_i));

  48.                 COLORREF color;
  49.                 color = item.index % 2 ? RGB(0, 0, 0xff) : RGB(0xff, 0, 0);


  50.                 XShapeText_SetTextColor(XList_GetTemplateObject(m_hList, item.index, 0), color, 0xff); //这里不知道该如何是好

  51.                 return 0;
  52.         }

  53. };
复制代码
XShapeText_SetTextColor(XList_GetTemplateObject(m_hList, item.index, 0), color, 0xff); //这里不知道该如何是好
我用文档上的例子, 想改变某个元素的颜色, 结果在那一步上被卡了.求指点
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-2-16 19:47:38 | 显示全部楼层
dasemimi 发表于 2016-2-16 19:12
楼主,你要的效果在此

http://pan.baidu.com/s/1i3Ut3YP

感谢大色 分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|炫彩界面库 ( 鄂ICP备2023014763号-1 )

GMT+8, 2024-9-20 00:22 , Processed in 0.068174 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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