【问题标题】:How to increase the height of the combobox control in mfc?如何增加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::SetItemHeightindex/nIndex 必须为 -1 才能设置选择字段的高度。
  • @IInspectable ,通过 sz.cy=50 后,组合框高度增加了。我们不能使组合中的文本完全适合控件。高度修改后组合框控件是如原始帖子所示。请参考该图像并请告诉我,即使我增加了高度,我们也可以使文本适合控件。
  • @IInspectable,我已经更新了我的帖子,请看一下,请告诉我您的建议。
  • 这是一个不同的主题,我建议为此提出一个新问题。由于您找到了最初问题的答案,请考虑留下答案(请参阅Can I answer my own question?)。
  • @IInspectable,关于组合中文本的垂直对齐,正如您建议将其作为一个单独的问题提出的那样,我做到了请参考此链接以了解该问题link,我要求您提供看看那个问题,请告诉我您的宝贵建议。

标签: visual-c++ mfc


【解决方案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 设计器中

    1. 单击下拉控件中的箭头:将出现一个调整大小的矩形。
    2. 调整下拉菜单的高度。

    瞧。

    【讨论】:

      【解决方案3】:

      在“属性”窗口中将 Type 属性设置为 Simple

      【讨论】:

        猜你喜欢
        • 2012-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-19
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 1970-01-01
        相关资源
        最近更新 更多