炫彩界面库论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3992|回复: 1

列表选中时颜色未变化

[复制链接]

该用户从未签到

发表于 2017-5-17 10:53:29 | 显示全部楼层 |阅读模式
1炫彩币
本帖最后由 小几耳 于 2017-5-17 11:03 编辑

QQ截图20170517103113.png

只能显示两个颜色

只能显示两个颜色

只能显示离开和停留,没有选中的颜色,我线条是用图片设置的,怎么可以用代码生成线条,如下图的线条

QQ截图20170517110300.png

该用户从未签到

发表于 2017-5-17 11:23:51 | 显示全部楼层
  1. #include "Common.h"

  2. class CMyWindowList
  3. {
  4. public:
  5.     HWINDOW m_hWindow;
  6.     HELE    m_hList;
  7.     CMyWindowList()
  8.     {
  9.                 srand(GetTickCount());
  10.         Init();
  11.     }
  12.     void Init()
  13.     {
  14.         m_hWindow = XWnd_Create(0, 0, 550, 380, L"炫彩界面库窗口",NULL, xc_window_style_default);
  15.         XBtn_SetType(XBtn_Create(5, 3, 60, 20, L"Close", m_hWindow),button_type_close);
  16.                
  17.         m_hList= XList_Create(20,40,500,300,m_hWindow);
  18.         XList_SetItemTemplateXML(m_hList,L"List_Item.xml");
  19.         XSView_SetLineSize(m_hList,20,20);
  20.                
  21.                 XEle_RegEventCPP(m_hList,XE_LIST_DRAWITEM,&CMyWindowList::OnListDrawItem);


  22.         XList_AddColumn(m_hList,100);
  23.         XList_AddColumn(m_hList,100);
  24.         XList_AddColumn(m_hList,100);
  25.                
  26.         HXCGUI hAdapterHeader=XAdMap_Create();
  27.         XList_BindAdapterHeader(m_hList,hAdapterHeader);
  28.         XAdMap_AddItemText(hAdapterHeader,L"name",L"aaa");
  29.         XAdMap_AddItemText(hAdapterHeader,L"name2",L"bbb");
  30.         XAdMap_AddItemText(hAdapterHeader,L"name3",L"ccc");
  31.         XAdMap_AddItemText(hAdapterHeader,L"name4",L"test");
  32.                
  33.         HXCGUI hAdapter=XAdTable_Create();
  34.         XList_BindAdapter(m_hList,hAdapter);
  35.         XAdTable_AddColumn(hAdapter,L"name");
  36.         XAdTable_AddColumn(hAdapter,L"name2");
  37.         XAdTable_AddColumn(hAdapter,L"name3");
  38.                
  39.         XList_SetColumnWidth(m_hList,0,150);
  40.         XList_SetColumnWidth(m_hList,1,150);
  41.         XList_SetColumnWidth(m_hList,2,150);
  42.                
  43.         wchar_t tmp[MAX_PATH]={0};
  44.         for (int i=0;i<20;i++)
  45.         {
  46.             wsprintfW(tmp,L"item-%d",i);
  47.             XAdTable_AddItemText(hAdapter,tmp);
  48.                        
  49.             wsprintfW(tmp,L"child-%d-1",i);  XAdTable_SetItemText(hAdapter,i,1,tmp);
  50.             wsprintfW(tmp,L"child-%d-2",i);  XAdTable_SetItemText(hAdapter,i,2,tmp);
  51.         }
  52.                
  53.         XWnd_ShowWindow(m_hWindow,SW_SHOW);
  54.     }
  55.         int OnListDrawItem(HDRAW hDraw,list_item_i* pItem,BOOL *pbHandled)
  56.         {


  57.                 switch (pItem->iSubItem)
  58.                 {
  59.                 case 0:
  60.                         XDraw_SetBrushColor(hDraw,rand());
  61.                         break;
  62.                 case 1:
  63.                         XDraw_SetBrushColor(hDraw,rand());
  64.                         break;
  65.                 case 2:
  66.                         XDraw_SetBrushColor(hDraw,rand());
  67.                         break;
  68.                 }

  69. //                 if (pItem->index%2 == 0)
  70. //                 {
  71. //                         switch (pItem->nState)
  72. //                         {
  73. //                         case list_item_state_leave:
  74. //                                 XDraw_SetBrushColor(hDraw,RGB(128,0,0));
  75. //                                 break;
  76. //                         case list_item_state_stay:
  77. //                                 XDraw_SetBrushColor(hDraw,RGB(0,128,0));
  78. //                                 break;
  79. //                         case list_item_state_select:
  80. //                                 XDraw_SetBrushColor(hDraw,RGB(0,0,128));
  81. //                                 break;
  82. //                         }
  83. //                 }
  84. //                 else
  85. //                 {
  86. //                         switch (pItem->nState)
  87. //                         {
  88. //                         case list_item_state_leave:
  89. //                                 XDraw_SetBrushColor(hDraw,RGB(128,128,0));
  90. //                                 break;
  91. //                         case list_item_state_stay:
  92. //                                 XDraw_SetBrushColor(hDraw,RGB(0,128,128));
  93. //                                 break;
  94. //                         case list_item_state_select:
  95. //                                 XDraw_SetBrushColor(hDraw,RGB(128,0,128));
  96. //                                 break;
  97. //                         }
  98. //                 }

  99.                 XDraw_FillRect(hDraw,&pItem->rcItem);
  100.                 *pbHandled = TRUE;


  101.                 return 0;
  102.         }
  103. };

  104. int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
  105. {
  106.     XInitXCGUI();
  107.     CMyWindowList  MyWindow;
  108.     XRunXCGUI();
  109.     XExitXCGUI();
  110.     return 0;
  111. }
复制代码
例子里面的代码。。。


下划线需要自己绘制一条直线即可
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-19 09:55 , Processed in 0.070080 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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