硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1897|回复: 9
收起左侧

[emWin] STemWIn的LISTVIEW能够实现多选功能吗?

[复制链接]

6

主题

12

回帖

30

积分

新手上路

积分
30
发表于 2018-3-16 14:29:59 | 显示全部楼层 |阅读模式
我看到LISTVIEW没有多选API函数,LISTBOX有多选函数,但是LISTBOX只能垂直布局。
请问有没有办法让LISTVIEW实现多选,或者让LISTBOX实现水平布局?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107157
QQ
发表于 2018-3-16 15:50:05 | 显示全部楼层
不支持,暂时无思路。
回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-3-17 12:32:33 | 显示全部楼层
自己写个吧  用按钮控件写 回调里重绘按钮控件  逻辑自己写  一样可以实现  是不过麻烦些
回复

使用道具 举报

6

主题

12

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2018-3-17 13:48:19 | 显示全部楼层
hanzixiangel 发表于 2018-3-17 12:32
自己写个吧  用按钮控件写 回调里重绘按钮控件  逻辑自己写  一样可以实现  是不过麻烦些

具体怎么写,能否发个例子?
回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-3-17 14:15:12 | 显示全部楼层
哈? 发表于 2018-3-17 13:48
具体怎么写,能否发个例子?

参照安富莱V6-561_STemWin实验_Button按钮控通过自定义回调函数实现各种按钮效果  这个里面有参考  

回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-3-17 14:18:40 | 显示全部楼层
哈? 发表于 2018-3-17 13:48
具体怎么写,能否发个例子?
  1. _hButton_Setting_CCCheck = BUTTON_CreateEx(60, 48, 35, 21, _hWindow_Setting, WM_CF_SHOW|WM_CF_HASTRANS,0, ID_BUTTON_SETTING_CC_CHECK);
  2.                 WM_SetCallback(_hButton_Setting_CCCheck, _cbButton_Private);
复制代码

  1. static void _cbButton_Private(WM_MESSAGE * pMsg)
  2. {
  3.         WM_HWIN  hWin;
  4.         GUI_RECT Rect;
  5.         hWin  = pMsg->hWin;
  6.     uint8_t MAC = 3;
  7.     uint8_t aa_flag = 1;
  8.         switch (pMsg->MsgId)
  9.         {
  10.                 case WM_PAINT:
  11.                         WM_GetClientRect(&Rect);   
  12. if(hWin == _hButton_Setting_CCCheck)                  /*CC检测开关*/
  13.             {
  14.                 if(aa_flag)
  15.                 {                 
  16.                     GUI_AA_EnableHiRes();
  17.                     GUI_AA_SetFactor(MAC);
  18.                 }
  19.                
  20.                 if (BUTTON_IsPressed(hWin))
  21.                 {
  22.                     if(SYS_FlashInfo.sys_info_cc_check == FLASH_INFO_EXIST)     /*CC 检测开*/
  23.                     {
  24.                         GUI_SetColor(X_CHARGE_GREEN);
  25.                         if(aa_flag)           
  26.                         {                        
  27.                             GUI_AA_FillRoundedRect(Rect.x0*MAC, Rect.y0*MAC, Rect.x1*MAC, Rect.y1*MAC, Rect.y1*MAC/2);
  28.                             GUI_SetColor(GUI_WHITE);
  29.                             if(lcddev.id == inch_4342)
  30.                                 GUI_AA_FillCircle(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, Rect.y1*MAC/2);
  31.                             else if(lcddev.id == inch_7084)
  32.                                 GUI_AA_FillEllipse(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, 0.96*(Rect.y1+1)*MAC/2, Rect.y1*MAC/2);
  33.                         }
  34.                     }
  35.                     else
  36.                     {
  37.                         GUI_SetColor(0x999999);
  38.                         if(aa_flag)           
  39.                         {                        
  40.                             GUI_AA_FillRoundedRect(Rect.x0*MAC, Rect.y0*MAC, Rect.x1*MAC, Rect.y1*MAC, Rect.y1*MAC/2);
  41.                             GUI_SetColor(GUI_WHITE);
  42. //                            GUI_AA_FillCircle(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, Rect.y1*MAC/2);
  43.                             if(lcddev.id == inch_4342)
  44.                                 GUI_AA_FillCircle(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, Rect.y1*MAC/2);
  45.                             else if(lcddev.id == inch_7084)
  46.                                 GUI_AA_FillEllipse(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, 0.96*(Rect.y1+1)*MAC/2, Rect.y1*MAC/2);
  47.                         }
  48.                     }
  49.                     GUI_SetBkColor(0x999999);
  50. //                    GUI_SetColor(0x999999);
  51.                 }
  52.                 else
  53.                 {
  54.                     
  55.                     if(SYS_FlashInfo.sys_info_cc_check == FLASH_INFO_NONE)     /*CC 检测开*/
  56.                     {
  57.                         GUI_SetColor(0x999999);
  58.                         if(aa_flag)           
  59.                         {                        
  60.                             GUI_AA_FillRoundedRect(Rect.x0*MAC, Rect.y0*MAC, Rect.x1*MAC, Rect.y1*MAC, Rect.y1*MAC/2);
  61.                             GUI_SetColor(GUI_WHITE);
  62.                             if(lcddev.id == inch_4342)
  63.                                 GUI_AA_FillCircle(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, Rect.y1*MAC/2);
  64.                             else if(lcddev.id == inch_7084)
  65.                                 GUI_AA_FillEllipse(Rect.y1*MAC/2+MAC*2, Rect.y1*MAC/2, 0.96*(Rect.y1+1)*MAC/2, Rect.y1*MAC/2);
  66.                         }
  67.                     }
  68.                     else
  69.                     {
  70.                         GUI_SetColor(X_CHARGE_GREEN);
  71.                         if(aa_flag)           
  72.                         {                        
  73.                             GUI_AA_FillRoundedRect(Rect.x0*MAC, Rect.y0*MAC, Rect.x1*MAC, Rect.y1*MAC, Rect.y1*MAC/2);
  74.                             GUI_SetColor(GUI_WHITE);
  75.                             if(lcddev.id == inch_4342)
  76.                                 GUI_AA_FillCircle(Rect.x1*MAC-Rect.y1*MAC/2-MAC*2, Rect.y1*MAC/2, Rect.y1*MAC/2);
  77.                             else if(lcddev.id == inch_7084)
  78.                                 GUI_AA_FillEllipse(Rect.x1*MAC-Rect.y1*MAC/2-MAC*2, Rect.y1*MAC/2, 0.96*(Rect.y1+1)*MAC/2, Rect.y1*MAC/2);
  79.                         }
  80.                     }
  81.                     GUI_SetBkColor(0x999999);
  82. //                    GUI_SetColor(0x999999);   
  83.                 }
  84.                 if(aa_flag)                  
  85.                     GUI_AA_DisableHiRes();
  86.             }
  87.      }
  88. }
复制代码
回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-3-17 14:19:56 | 显示全部楼层
哈? 发表于 2018-3-17 13:48
具体怎么写,能否发个例子?

参考我上面发的简要代码
回复

使用道具 举报

6

主题

12

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2018-3-27 20:26:06 | 显示全部楼层
hanzixiangel 发表于 2018-3-17 14:19
参考我上面发的简要代码

好像这样实现不了吧?不太懂
回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-3-28 10:10:43 | 显示全部楼层
哈? 发表于 2018-3-27 20:26
好像这样实现不了吧?不太懂

只是一个参考  肯定可以实现的  只不过得自己写
回复

使用道具 举报

6

主题

12

回帖

30

积分

新手上路

积分
30
 楼主| 发表于 2018-5-4 14:40:24 | 显示全部楼层
嗯嗯,谢谢
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-20 19:57 , Processed in 0.247472 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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