代码之家  ›  专栏  ›  技术社区  ›  Coder

不同DPI、高度计算的ccomboxex问题

  •  1
  • Coder  · 技术社区  · 14 年前

    我想在表单上添加一个cComboxex,但我必须将它与其他控件对齐,并使其高度相同。

    问题是我找不到哪种方法可以得到这个控件的高度。

    有没有办法根据图像和当前DPI设置计算ComboBoxEx的大小?这样,如果不能调整控件的内部填充,至少可以扩展其他控件。据我所知,MSDN根本不涉及尺寸问题。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Jonathan Potter    14 年前

    组合框自动设置控件的高度,正如您所发现的,尝试设置自己的高度实际上会影响下拉列表的高度。

    要获取控件的实际高度(以便调整其他控件的大小),可以使用GetWindowRect:

    RECT rc;
    GetWindowRect(hWndCombo, &rc);
    int iComboHeight = rc.bottom - rc.top;
    

    我不知道如何改变组合控件本身的高度,坦率地说,我不相信至少没有很多子类化是可能的。因此,我实现了自己的组合样式控件。