【问题标题】:Virtual list (Problems with parameter/pointer)虚拟列表(参数/指针问题)
【发布时间】:2022-01-03 11:57:21
【问题描述】:

我正在尝试将我的 CListCtrl 转换为虚拟列表,但我不知道我必须使用哪个参数

    // --- Virtual List ---
void CSpielebibliothekGUIDlg::OnGetdispinfoList(NMHDR* pNMHDR, LRESULT* pResult) // --- nullptr muss weg --- 
{
    LPNMITEMACTIVATE pNMIA = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);

    LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;

    LV_ITEM* pItem = &(pDispInfo)->item;

    int itemid = pItem->iItem;

    if (pItem->mask & LVIF_TEXT)
    {
        CString text;
        // --- Welche Spalte ---
        if (pItem->iSubItem == 0)
        {
            // --- Name ---
            text = Spiele[itemid].m_Name;
        }
        if (pItem->iSubItem == 1)
        {
            //Text is slogan
            text = Spiele[itemid].m_Plattform;
        }
        if (pItem->iSubItem == 2)
        {
            text = Spiele[itemid].m_Genre;
        }
        if (pItem->iSubItem == 3)
        {
            CString Release;
            Release.Format(_T("%d"), Spiele[itemid].m_Erscheinungsjahr);
            text = Release;
        }
        if (pItem->iSubItem == 4)
        {
            CString Preis;
            Preis.Format(_T("%g"), Spiele[itemid].m_Preis);
            text = Preis;
        }
        if (pItem->iSubItem == 5)
        {
            CString EAN;
            EAN.Format(_T("%d"), Spiele[itemid].m_EAN);
            text = EAN;
        }
        if (pItem->iSubItem == 6)
        {
            text = Spiele[itemid].Verwandschaft;
        }

        lstrcpyn(pItem->pszText, text, pItem->cchTextMax);
    }

    *pResult = 0;
}

这是我的函数调用


    OnGetdispinfoList(nullptr, nullptr);

当然 nullptr 是不对的,我很高兴有任何帮助。

【问题讨论】:

标签: c++ mfc


【解决方案1】:

你不需要调用消息处理程序,它们会在你之后被系统调用:

  • 设置正确的窗口样式 (LVS_OWNERDATA)
  • 设置项目数
  • 将您的 OnGetdispinfoList 添加到消息映射中

【讨论】:

  • 所以,你的意思是我不必使用这部分...? OnGetdispinfoList(nullptr, nullptr);
  • @Miyutic,是的,你调用CListCtrl::SetItemCount,然后从消息映射中调用消息处理程序。
猜你喜欢
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 1970-01-01
  • 2013-10-13
相关资源
最近更新 更多