当前位置:C++技术网 > 资讯 > 动态创建的ComboBox控件如何设置下拉列表的高度

动态创建的ComboBox控件如何设置下拉列表的高度

更新时间:2016-05-16 19:25:04浏览次数:1+次

    可能是习惯了直接拖控件,然后调整ComboBox控件的下拉列表高度,然后突然需要给动态创建的ComboBox控件设置下拉列表高度时竟然不知所措。而在晚上查,基本都是拖控件的方法,所以我简单的总结一下。
    在界面上调整ComboBox控件的方法如下图所示:

1.拖放一个ComboBox控件

从工具栏拖放一个ComboBox控件

2.调整ComboBox控件的编辑框宽度

点击ComboBox控件两侧深色方块调整编辑框宽度

3.调整ComboBox控件的下拉列表高度

拖动深色方块调整下拉列表的高度


    这样就轻松的搞定了。但是如果你是用代码动态创建的ComboBox控件,那么就不知道如何设置编辑框的宽度和下拉列表的高度了吧。
    别急,咱们这里就马上揭晓答案,告诉你怎么做,告诉你为什么这么做。
    我们在界面上调整时,你会发现,编辑框的高度时无法调整的,只能调整编辑框的宽度。同时,我们调整编辑框的宽度,也会自动设置为列表框的宽度。然后就是单独为下拉列表设置高度。
    实际上,编辑框的高度是不能直接修改的。那么我们修改的高度只会应用于下拉列表。在编程创建控件时,我们使用的是CreateWindow函数,此函数要求我们传入窗口的起始坐标、宽度和高度,那么这个宽度和高度和我们直接拖控件的调整宽度和高度是什么样的对应关系呢?
    宽度我们都好理解,编辑框和下拉列表保持一致。因为ComboBox控件是组合控件,所以是由编辑框和列表控件组合而成的。宽度是编辑框和下拉列表同时起作用的。
    而高度则只针对列表框。你不妨指定高度为0,你照样可以看到编辑框,但是你却找不到下拉框了。所以,高度是为列表框服务的。因为编辑框固定了高度,所以你调整高度只是在调整下拉列表高度而已。如果你想多显示几个列表项,就要将列表高度设置高一些。这就意味着,你在创建窗口是,窗口高度要设置高一些。
    下面是ComboBox控件结构示意图:
ComboBox控件结构
    那么动态创建ComboBox控件设置下拉列表高度的问题也就自然而然的解决了,只要将CreateWindow的窗口高度参数设置一下就对了。