动态调整组合框的宽度,以便可以显示整个字符串

Dynamically adjust the width of combobox so the entire string can be shown

本文关键字:显示 字符串 组合 调整 动态      更新时间:2023-10-16

我正在使用组合框控件来显示存储在数据库中的名称(例如,我需要保留空间,这就是为什么我使用它而不是列表视图的原因)。

我的问题是有时文本比组合框长,因此看不到其中的一部分。

有没有办法调整组合框列表框的大小,以便它可以完全显示文本,或者至少启用某种水平滚动,以便用户可以滚动以查看整个文本?

浏览组合框文档,我还没有找到任何可以解决我问题的样式。尝试在我的CreateWindowEx通话中添加WS_HSCROLL作为样式也无济于事。谢谢。

您正在寻找CB_SETHORIZONTALEXTENT消息。

应用程序发送CB_SETHORIZONTALEXTENT消息以设置列表框水平滚动的宽度(以像素为单位)(可滚动宽度)。如果列表框的宽度小于此值,则水平滚动条将水平滚动列表框中的项目。如果列表框的宽度等于或大于此值,则隐藏水平滚动条,或者,如果组合框具有CBS_DISABLENOSCROLL样式,则禁用。

参数

wParam
指定列表框的可滚动宽度(以像素为单位)

l帕拉姆
不使用此参数。