win32 列表视图缩写文本
Posted
技术标签:
【中文标题】win32 列表视图缩写文本【英文标题】:win32 List View Abbreviating Text 【发布时间】:2013-09-04 15:29:26 【问题描述】:我正在使用 win32 创建带有下载图标的列表视图,但是,文本被缩写为大约 19 个字符(大约 12 号字体,Segoe UI)。我已经包含了我正在使用的 CreateWindow 和项目创建代码。
任何建议将不胜感激。
HWND airlinelist = CreateWindow(WC_LISTVIEW,L"",WS_CHILD | LVS_LIST | WS_TABSTOP | WS_BORDER,18,104,323,74,hwnd,(HMENU)3,hinst,NULL);
LVITEM newi;
ZeroMemory(&newi,sizeof(LVITEM));
const wchar_t* n = L"Client Website Name, website.com"
newi.pszText = newc;
newi.mask = LVIF_TEXT | LVIF_IMAGE;
newi.iImage = 0;
ListView_InsertItem(airlinelist,&newi);
上面将创建一个带有图标的列表视图和一些“客户网站名称...”的效果,尽管它只占用了列表视图宽度的一半。
【问题讨论】:
ListView 处于什么模式(图标、列表、报表等)?如果报告,是否定义了一个宽度仅足以容纳 19 个字符的列? 【参考方案1】:我假设您使用的是LVS_LIST
模式,因为样式显示在您的代码示例中。将项目添加到列表控件后,您可以使用 LVM_SETCOLUMNWIDTH
消息调整列大小。您还可以使用ListView_SetColumnWidth
宏。例如:
SendMessage(airlinelist, LVM_SETCOLUMNWIDTH, 0, 300);
这会将列设置为 300 像素宽。如果您实际使用LVS_REPORT
模式,则需要单独设置每列的宽度。
【讨论】:
以上是关于win32 列表视图缩写文本的主要内容,如果未能解决你的问题,请参考以下文章