硬汉嵌入式论坛

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

[emWin] iconview的使用请教,版主指导一下。

[复制链接]

25

主题

58

回帖

133

积分

初级会员

积分
133
发表于 2020-2-12 18:27:15 | 显示全部楼层 |阅读模式
自己做了一个图形界面用的是emwin
其中的一个控件是iconview
hIcon_t = ICONVIEW_CreateEx(0,
                            35,
                            LCD_GetXSize(),
                            LCD_GetYSize(),
                             hWinMain,
                             WM_CF_SHOW ,
                             0,
                            ID_ICONVIEW_MENU,
                            150,
                            95);


我也设置了字体和还有显示的图片。

         ICONVIEW_SetFont(hIcon_t, &GUI_FontYaHei4A24);  

   ICONVIEW_AddBitmapItem(hIcon_t,&bmTest6575,  "数据检测");
   ICONVIEW_AddBitmapItem(hIcon_t,&bmData6575,  "数据管理");
   ICONVIEW_AddBitmapItem(hIcon_t,&bmConfig6575,"系统设置");
   ICONVIEW_AddBitmapItem(hIcon_t,&bmSystem6575,"关于主机");


被选择项,我是反色显示图片和汉字。
在回调函数中,我来处理文字的显示和图片的显示。

//======================================================
                case WM_NOTIFY_PARENT:
                                Id    = WM_GetId(pMsg->hWinSrc);
                                NCode = pMsg->Data.v;
                                switch (NCode)
                                {                  
                                        case WM_NOTIFICATION_SEL_CHANGED:

                                                if (Id == ID_ICONVIEW_MENU)  {
                                                        sel = ICONVIEW_GetSel(pMsg->hWinSrc);

                                                        for(j=0; j< 4 ;j++)
                                                        {
                                                                if(j== sel){
                                                                        ICONVIEW_SetBitmapItem(pMsg->hWinSrc,j, _pbmSelect[j]);   test_i = j;}
                                                                else
                                                                        ICONVIEW_SetBitmapItem(pMsg->hWinSrc,j, _pbmUnSelect[j]);
                                                        }
                                                }
                                               

//===================================================


开始没有问题,但是在界面操作过程中,开始还可以,显示界面切换多了以后,发现这个控件的第一个选项在被选择以后,反色显示的图片好像没有显示,不知道为什么?
其他的选项则显示正常。







回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-2-13 00:21:33 | 显示全部楼层
估计是聚焦没有处理好。

聚焦还在第1个图标上,为了验证是否是聚焦问题,你可以不设置反显图片,还用默认处理看下。
回复

使用道具 举报

25

主题

58

回帖

133

积分

初级会员

积分
133
 楼主| 发表于 2020-2-13 11:09:50 | 显示全部楼层
版主,问题解决掉了。浪费了我整整一天时间。。。
这个论坛太好了。


回复

使用道具 举报

25

主题

58

回帖

133

积分

初级会员

积分
133
 楼主| 发表于 2020-2-13 11:13:12 | 显示全部楼层
@eric2013
                                                       for(j=0; j< 4 ;j++)
                                                        {
                                                                if(j== sel){
                                                                        ICONVIEW_SetBitmapItem(pMsg->hWinSrc,j, _pbmSelect[j]);   test_i = j;}
                                                                else
                                                                        ICONVIEW_SetBitmapItem(pMsg->hWinSrc,j, _pbmUnSelect[j]);
                                                        }

这里我是把位图变量定义在一个数组里了。其实在模拟器上没有问题

但是发现这里就不行啊。

我直接都改成代码了。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115787
QQ
发表于 2020-2-14 00:36:18 | 显示全部楼层
wxqhit 发表于 2020-2-13 11:13
@eric2013
                                                       for(j=0; j< 4 ;j++)
              ...

可以的,解决了就好。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-18 20:20 , Processed in 0.205187 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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