首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用dropdownlist而不是ownerdraw样式来更改Combobox控件的外观高度?

如何使用dropdownlist而不是ownerdraw样式来更改Combobox控件的外观高度?
EN

Stack Overflow用户
提问于 2013-05-26 02:06:08
回答 1查看 2.9K关注 0票数 4

背景:在某个对话框中,一行中有几个控件。我希望它们都有相同的表观高度。但是,对于具有CBS_DROPDOWNLIST样式且没有CBS_OWNERDRAW*的组合框,我在更改外观高度时遇到了问题。

问:如何更改这种DROPDOWNLIST组合框的外观高度?

我知道combobox不允许使用SetWindowPos更改高度。然而,我的印象是,使用wParam= -1发送CB_SETITEMHEIGHT消息应该会修改高度。这种方法确实适用于设置了CBS_OWNERDRAWFIXED样式的组合框(我希望避免设置此样式,以保留“类似按钮”的外观)。

环境:我的Win32应用程序使用Common-Controls 6.0,我关心的是在启用了视觉样式的环境(Windows7,Aero)中的外观。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-30 17:30:01

我认为这是不可能的。

正如您所提到的,SetWindowPosMoveWindow都不会像您期望的那样工作。那是因为the height of a ComboBox includes the height of the drop-down。该控件根据其使用的字体大小自动调整自身的大小。因此,要更改大小,请通过向控件发送WM_SETFONT消息来更改控件的字体大小。

但我不明白为什么这是个问题。您说您希望一系列控件具有相同的高度,但是除非您更改其他控件的高度,否则它们应该已经匹配。由于对话框上的所有控件通常使用相同的字体,因此组合框和文本框都应该具有相同的高度。当您使用公共控件的v6并启用视觉样式时,它们将应用于所有这些控件,并且它们应该具有统一的外观。你不应该手动调整高度。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16752486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档