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 列表视图缩写文本的主要内容,如果未能解决你的问题,请参考以下文章

群组未在win32列表视图中显示的原因是什么?

将文本表的数据导出为 .csv (Tableau)

删除和重新添加所有项目和所有列时,列表视图在 Win32 对话框上闪烁

ABAP文本表查找

调整列表视图大小时如何设置标题宽度等于其列表视图控件宽度?

如何更改列表视图的边框颜色