硬汉嵌入式论坛

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

[emWin] LISTBOX删除项目

[复制链接]

7

主题

13

回帖

34

积分

新手上路

积分
34
发表于 2024-10-26 09:45:19 | 显示全部楼层 |阅读模式
请问:我想要使用LISTBOX_DeleteItem删除ID_PWVW_STOP_ALL这一行,但是删除的是最后一行,是什么原因呢?
下面是部分代码

case WM_INIT_DIALOG:
        {
            INT32U i;
            INT32U bHaveFocuse;
            ViewRunSetData_t ViewRunSetData;
                        int stopAllIndex = -1;  // 记录ID_PWVW_STOP_ALL的索引

            hItem = WM_CreateTimer(pMsg->hWin,0,ON_CHARGE_TIMEOUT_EXITVIEW_MS / portTICK_PERIOD_MS,0);

            //ViewRunSetData.ItemDataFocusMsk = 0x1F;
            ViewRunSetData.ItemDataFocusMsk = 0x3F;
            ViewRunSetData.ItemNoDataMsk = 0x0C;
            ViewRunSetData.hTimer = hItem;
            WINDOW_SetUserData(pMsg->hWin,&ViewRunSetData,sizeof(ViewRunSetData));
            WINDOW_SetBkColor(pMsg->hWin,VIEW_TITLE_BKCOLOR);
            // Initialization of 'Listbox'
            hItem = WM_GetDialogItem(pMsg->hWin, ID_LISTBOX_0);
            bHaveFocuse = TRUE;
            LISTBOX_SetUserData(hItem,&bHaveFocuse,sizeof(bHaveFocuse));
            for(i = ID_PWVW_VOLTAGE;i <= ID_PWVW_BACK;i++)
            {
                LISTBOX_AddString(hItem, "");
                                if(i == ID_PWVW_STOP_ALL)
                                {        
                                        stopAllIndex = LISTBOX_GetNumItems(hItem) - 1;  // 记录STOP_ALL当前行数   
                                }
            }
            LISTBOX_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_LEFT);
            LISTBOX_SetFont(hItem, &GUI_DEFAULT_FONT);
            LISTBOX_SetItemSpacing(hItem, LIST_BOX_ITEM_SIZE - GUI_GetYDistOfFont(LISTBOX_GetFont(hItem)));
            LISTBOX_SetOwnerDraw(hItem, _ViewPowerVWSetListBoxOwnerDraw);
            LISTBOX_SetSel(hItem,g_CurPageId.Id - 1);
                        if(g_SinglePowerChannel == 1 && stopAllIndex != -1)
                        {
                                LISTBOX_DeleteItem(hItem,stopAllIndex);
                                //g_SinglePowerChannel = 0;
                        }
                        LISTBOX_SetBkColor(hItem,LISTBOX_CI_UNSEL,VIEW_BK_NFCOLOR);
            WM_SetCallback(hItem, _cbViewListBoxUser);
        }
        break;

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115434
QQ
发表于 2024-10-27 12:11:08 | 显示全部楼层
1、优先测试 LISTBOX_DeleteItem(hItem,stopAllIndex); 设置指定行,看看正常不。
2、不行的话,不知道是不是WM_INIT_DIALOG初始化消息里面不行,你试试对话框正常运行后,删除试试
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 21:52 , Processed in 0.219031 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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