虚拟列表(parameter/pointer 的问题)

Virtual list (Problems with parameter/pointer)

我正在尝试将我的 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 不对,我很高兴得到任何帮助。

您不需要调用消息处理程序,它们将在您完成后由系统调用:

  • 设置适当的 window 样式 (LVS_OWNERDATA)
  • 设置项目数
  • 将您的 OnGetdispinfoList 添加到消息映射