如何增加mfc中组合框控件的高度?
Posted
技术标签:
【中文标题】如何增加mfc中组合框控件的高度?【英文标题】:How to increase the height of the combobox control in mfc? 【发布时间】:2015-01-26 14:11:15 【问题描述】:我想增加组合框控件的高度。正在增加宽度。但是当我试图增加组合框高度时,它并没有增加。我很清楚我想增加控件的垂直高度。通常我创建的combobox控件如下。
如上图所示,红色边框的控件是组合框控件,我想增加高度。如果你可以看看下图的EDIT控件(注意编辑控件的大小)。类似于编辑控件的大小我必须增加组合框控件的高度。
CString str;
CSize sz;
CDC* pDC = m_comboCtrl.GetDC();
m_comboCtrl.GetLBText(0, str);
sz = pDC->GetTextExtent(str);
m_comboCtrl.SetItemHeight(-1,50);
增加垂直高度后,控件中的文本非常小,我们如何使文本适合控件(这类似于默认组合框控件中的普通文本)。但是控件中的文本为接下来,
任何人都可以让我知道如何使文本居中到控件中,如下图所示。上图中的文本在顶部,但我想让文本居中为标准控件中的文本。
【问题讨论】:
ComboBox_SetItemHeight 或相应的 MFC 实现 CComboBox::SetItemHeight。index
/nIndex
必须为 -1 才能设置选择字段的高度。
@IInspectable ,通过 sz.cy=50 后,组合框高度增加了。我们不能使组合中的文本完全适合控件。高度修改后组合框控件是如原始帖子所示。请参考该图像并请告诉我,即使我增加了高度,我们也可以使文本适合控件。
@IInspectable,我已经更新了我的帖子,请看一下,请告诉我您的建议。
这是一个不同的主题,我建议为此提出一个新问题。由于您找到了最初问题的答案,请考虑留下答案(请参阅Can I answer my own question?)。
@IInspectable,关于组合中文本的垂直对齐,正如您建议将其作为一个单独的问题提出的那样,我做到了请参考此链接以了解该问题link,我要求您提供看看那个问题,请告诉我您的宝贵建议。
【参考方案1】:
要增加组合框的高度,我们需要在 OnInitDialog() 中这样做,如下所示,
CString str;
CSize sz;
CDC* pDC = m_comboCtrl.GetDC();
m_comboCtrl.GetLBText(0, str);
sz = pDC->GetTextExtent(str);
m_comboCtrl.SetItemHeight(-1,50);//CCombobox m_comboCtrl;
SetItemHeight 中的 50 表示现在我们术语中称为高度的 y 坐标。在 OnInitDialog() 中添加上述代码 sn-p 后,组合框看起来像(参考我添加图像的原始帖子增加高度后的组合框控件(图2))。
【讨论】:
【参考方案2】:按照http://dotnetbutchering.blogspot.com/2008/03/vc-mfc-how-to-set-combobox-dropdown.html上的说明进行操作:
在 MFC 设计器中
-
单击下拉控件中的箭头:将出现一个调整大小的矩形。
调整下拉菜单的高度。
瞧。
【讨论】:
【参考方案3】:在“属性”窗口中将 Type 属性设置为 Simple
【讨论】:
以上是关于如何增加mfc中组合框控件的高度?的主要内容,如果未能解决你的问题,请参考以下文章