我正在使用 WC_LISTVIEW 控件创建一个在运行时填充数据的表。该表工作正常。但是,我无法在一个单元格中显示多行。
有没有办法使用换行符(例如使用 \n
)?
这是我创建表格的方式:
HWND listViewErrors = CreateWindow(WC_LISTVIEW, L"",
WS_VISIBLE | WS_BORDER | WS_CHILD | LVS_REPORT | LVS_SINGLESEL,
17, 27, errorsRect.Width() - 12, errorsRect.Height() - 25,
GetWindowHandle(), (HMENU)ID_LIST_ERRORS, NULL, 0);
我这样添加行:
LVITEM lvi = { 0 };
lvi.mask = LVIF_TEXT;
lvi.pszText = L"Label of an entry";
int ret = ListView_InsertItem(hwndList, &lvi); // Main item
if (ret >= 0)
{
ListView_SetItemText(
hwndList,
ret,
1,
L"A description containing\nline breaks, but the\nline breaks will be\nignored."); // Sub item
}
return ret;
结果是换行符 (\n
) 不再可见,但文本仍在单行中。
最佳答案
除非您使用自定义绘制或所有者绘制,否则 LISTVIEW 窗口从不支持报告模式下的多行条目。
即使使用自定义绘制或所有者绘制,所有行也将具有相同的高度。
关于c++ - 在 Win32 API ListView 中添加带换行符的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47072634/