gpt4 book ai didi

平铺 View 中的 c++ Virtual ListView,无法显示子项

转载 作者:太空宇宙 更新时间:2023-11-04 11:45:53 24 4
gpt4 key购买 nike

我有一个直接的 win32 c++ 应用程序,我用 View 类型设置为 LV_VIEW_TILE 的 ListView 填充窗口,我还将样式设置为 LVS_OWNERDATA。

我在尝试弄清楚如何让子项目显示时遇到了麻烦。此代码创建 View 。

DWORD exstyle =WS_EX_CLIENTEDGE|LVS_EX_DOUBLEBUFFER|LVS_EX_JUSTIFYCOLUMNS|LVS_EX_INFOTIP;

g_hwndList = CreateWindowEx(exstyle, WC_LISTVIEW, NULL, WS_CHILD | WS_VISIBLE | LVS_ICON | LVS_OWNERDATA, 0, 0, 0, 0, hWnd, (HMENU) 2702, hInst, NULL);

ListView_SetView(g_hwndList, LV_VIEW_TILE);
LVTILEVIEWINFO tileViewInfo = { };
tileViewInfo.cbSize = sizeof(LVTILEVIEWINFO);
tileViewInfo.dwFlags = LVTVIF_AUTOSIZE;
tileViewInfo.dwMask = LVTVIM_COLUMNS;
tileViewInfo.cLines = 1;

BOOL tst = ListView_SetTileViewInfo(g_hwndList, &tileViewInfo);

我只想再显示一个子项/列。在我的 LVN_GETDISPINFO 中,我目前有这个:

static int colfmt[1];
colfmt[0] = LVCFMT_LEFT;

static int order[1];
order[0] = 1;

if ((nimfo->item.mask & LVIF_COLUMNS) == LVIF_COLUMNS) {
nimfo->item.cColumns = 1;
nimfo->item.piColFmt = PINT(colfmt);
nimfo->item.puColumns = PUINT(order);
}

if ((nimfo->item.mask & LVIF_TEXT) == LVIF_TEXT) {
nimfo->item.pszText = di->LABEL;
}

if ((nimfo->item.mask & LVIF_IMAGE) == LVIF_IMAGE) {
nimfo->item.iImage = di->IMAGE_INDEX;
}

我不知道在什么时候和哪里需要提供子项/列文本,我从来没有看到 nimfo->item.subitem 从 0 变化,并且对于 LVIF_TEXT 的每次调用,结构值总是一样。

那么我什么时候需要提供额外的文本数据呢?

非常感谢。

最佳答案

我相当愚蠢,没有添加任何列,因此没有被要求提供其他项目。

添加这个,一切正常

LVCOLUMN col = {};
col.mask = LVCF_SUBITEM;
col.iSubItem = 0;
ListView_InsertColumn(g_hwndList, 0, &col);

关于平铺 View 中的 c++ Virtual ListView,无法显示子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19860103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com