硬汉嵌入式论坛

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

[emWin] ICONVIEW控件无法触发怎么回事

[复制链接]

27

主题

70

回帖

151

积分

初级会员

积分
151
发表于 2018-9-13 17:15:30 | 显示全部楼层 |阅读模式
static void _cbDialog5(WM_MESSAGE * pMsg) {
        WM_HWIN hItem;
        int     NCode;
        int     Id;

        switch (pMsg->MsgId) {循环一次以后,就只能到这里,到不了下面,是怎么回事
        case WM_INIT_DIALOG://初始化消息,创建窗口/控件时有效,比如在这里设置一些控件的初始参数
                hItem = pMsg->hWin;
                FRAMEWIN_SetText(hItem, "neqee.com");
                FRAMEWIN_SetFont(hItem, GUI_FONT_20_1);
                FRAMEWIN_SetTextColor(hItem, (0x00FF0000));

                hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_70);
                TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
                TEXT_SetTextColor(hItem, (0x008000FF));
                TEXT_SetFont(hItem, GUI_FONT_20_1);
                TEXT_SetText(hItem, "neqee");

                hItem = WM_GetDialogItem(pMsg->hWin, ID_ICONVIEW_70);
                ICONVIEW_SetIconAlign(hItem, ICONVIEW_IA_TOP);
                ICONVIEW_SetTextColor(hItem, ICONVIEW_CI_UNSEL, GUI_BLUE);
                ICONVIEW_SetTextColor(hItem, ICONVIEW_CI_SEL, GUI_GREEN);
                ICONVIEW_SetFrame(hItem, GUI_COORD_X, 0);//设置图标到IconView边框的间距
                ICONVIEW_SetFrame(hItem, GUI_COORD_Y, 0);
                ICONVIEW_SetSpace(hItem, GUI_COORD_X, (280-64*4)/3);//设置图标和图标之间的间距
                ICONVIEW_SetSpace(hItem, GUI_COORD_Y, (140-64*2)/1);
                ICONVIEW_SetFont(hItem, GUI_FONT_16_1);
                ICONVIEW_AddBitmapItem(hItem, &bm01, "neqee");//添加图标项
                ICONVIEW_AddBitmapItem(hItem, &bm02, "SOS");
                ICONVIEW_AddBitmapItem(hItem, &bm03, "Phone");
                ICONVIEW_AddBitmapItem(hItem, &bm04, "Camera");
                ICONVIEW_AddBitmapItem(hItem, &bm05, "Email");
                ICONVIEW_AddBitmapItem(hItem, &bm06, "NoteBook");
                ICONVIEW_AddBitmapItem(hItem, &bm07, "JTV");
                ICONVIEW_AddBitmapItem(hItem, &bm08, "Dollar");
                        ICONVIEW_AddBitmapItem(hItem, &bm03, "Phone");
                ICONVIEW_AddBitmapItem(hItem, &bm04, "Camera");
                ICONVIEW_AddBitmapItem(hItem, &bm05, "Email");
                ICONVIEW_AddBitmapItem(hItem, &bm06, "NoteBook");
                ICONVIEW_AddBitmapItem(hItem, &bm07, "JTV");
                ICONVIEW_AddBitmapItem(hItem, &bm08, "Dollar");
                ICONVIEW_AddBitmapItem(hItem, &bm01, "neqee");//添加图标项
                ICONVIEW_AddBitmapItem(hItem, &bm02, "SOS");
                ICONVIEW_AddBitmapItem(hItem, &bm03, "Phone");
                ICONVIEW_AddBitmapItem(hItem, &bm04, "Camera");
                ICONVIEW_AddBitmapItem(hItem, &bm05, "Email");
                ICONVIEW_AddBitmapItem(hItem, &bm06, "NoteBook");
                ICONVIEW_AddBitmapItem(hItem, &bm07, "JTV");
                ICONVIEW_AddBitmapItem(hItem, &bm08, "Dollar");


                //ICONVIEW_AddBitmapItem(hItem, &bm09, "Jobbet");
                break;
        case WM_NOTIFY_PARENT://操作触发消息处理(操作屏幕程序会跑到这里),比如点击按键、点击编辑框(任何的操作)等等......
                Id    = WM_GetId(pMsg->hWinSrc);
                NCode = pMsg->Data.v;
                switch(Id) {
                case ID_ICONVIEW_70:
                        switch(NCode) {
                        case WM_NOTIFICATION_CLICKED://点击图标(只有第一次开始的时候能触发并且到这个位置,后面就再也到不了这里)
                                switch(ICONVIEW_GetSel(WM_GetDialogItem(pMsg->hWin, ID_ICONVIEW_70)))
                                {
                                case 0: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "neqee");
                                       MainTask6();                                        break;
                                case 1: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "SOS"); break;
                                case 2: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "Phone");
                GUI_EndDialog(pMsg->hWin,0);            MainTask6();                                         break;
                                case 3: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "Camera"); break;
                                case 4: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "Email"); break;
                                case 5: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "NoteBook"); break;
                                case 6: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "JTV"); break;
                                case 7: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_70), "Dollar"); break;
                                //case 8: TEXT_SetText(WM_GetDialogItem(pMsg->hWin, ID_TEXT_0), "Jobbet"); break;
                                }
                                break;
                        case WM_NOTIFICATION_RELEASED:
                                break;
                        case WM_NOTIFICATION_MOVED_OUT:
                                break;
                        case WM_NOTIFICATION_SCROLL_CHANGED:
                                break;
                        case WM_NOTIFICATION_SEL_CHANGED:
                                break;
                        }
                        break;
                }
                break;
        default:
                WM_DefaultProc(pMsg);
                break;
        }
}

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115765
QQ
发表于 2018-9-14 01:32:42 | 显示全部楼层
你之前那个程序东西有点多。

仅创建一个窗口显示ICONVIEW测试是否正常。
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-14 08:37:38 | 显示全部楼层
这是移植的一个在模拟机上没问题,我直接调用的这个maintask函数和我前面那些没什么关系,这样的情况下出的问题

Application.rar

101.19 KB, 下载次数: 23

回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2018-9-14 08:38:04 | 显示全部楼层
eric2013 发表于 2018-9-14 01:32
你之前那个程序东西有点多。

仅创建一个窗口显示ICONVIEW测试是否正常。

这是移植的一个在模拟机上没问题,我直接调用的这个maintask函数和我前面那些没什么关系,这样的情况下出的问题
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 06:47 , Processed in 0.218519 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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