首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用地图数据结构的虚拟列表控件?

如何使用地图数据结构的虚拟列表控件?
EN

Stack Overflow用户
提问于 2022-11-01 12:03:22
回答 1查看 112关注 0票数 -1

我在学习C++燃料电池时有一个问题。

代码语言:javascript
复制
void AnchorDlg::OnGetdispinfoListctrl(NMHDR *pNMHDR, LRESULT *pResult)
{

    NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR);

    LV_ITEM* pItem = &(pDispInfo)->item;
    CString str;
    if(pItem == NULL) return;

    int nRow = pItem->iItem;
    int nCol = pItem->iSubItem;

    if(nRow<0 || nRow >= mapShip->size()) return;

    auto iter = mapShip->begin();

    if(pItem->pszText)
    {
        switch(nCol)
        {
        case 1:
            str.Format(_T("%.0f"), iter->second->mmsi);
            //str.Format(_T("%.0f"), iter->second->mmsi);
            lstrcpy(pItem->pszText, str);
            break;
        case 2:
            str.Format(_T("%.7f"), iter->second->lat);
            lstrcpy(pItem->pszText, str);
            break;
        case 3:
            str.Format(_T("%.7f"), iter->second->lng);
            lstrcpy(pItem->pszText, str);
            break;
        case 4:
            str.Format(_T("%.1f"), iter->second->sog);
            lstrcpy(pItem->pszText, str);
        case 5:
            str.Format(_T("%.1f"), iter->second->cog);
            lstrcpy(pItem->pszText, str);
        }
    }
    *pResult = 0;
}

mapShip由双对象和数据对象组成。

我想打印1000个数据,但是只有一个数据被打印出来。

我使用过iter,但输出的数据只有一个。同样的数据打印重复。

我必须使用地图数据结构。

我不知道怎么用地图。

EN

回答 1

Stack Overflow用户

发布于 2022-11-01 13:19:34

虚拟列表-视图控件是一个不存储任何数据的列表视图控件.相反,用户只需告诉控件有多少项(通过发送LVM_SETITEMCOUNT消息),然后控件实现将调用用户为各个单元格(通过LVN_GETDISPINFO消息)提供数据。

虽然所讨论的代码是响应LVN_GETDISPINFO消息,评估标识要显示的单元格的nRow (和nCol),但它不使用这些数据来查找信息。代码始终访问第一项(mapShip->begin())以供显示。但是,它应该使用nRow对由mapShip表示的数据进行索引(示例请参见如何使用虚拟列表-视图控件 )。

假设mapShipstd::map类模板的实例化,您将希望使用nRow作为索引索引到该映射中,例如:

代码语言:javascript
复制
auto const& value = mapShip[nRow];

使用value代替iter。这将按条目存储在关联容器中的顺序显示它们(按键排序)。如果需要不同的排序,则必须将nRow映射到映射中的相应索引。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74275656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档