在MFC中,设置ComboBox控件中下拉列表的高度

在MFC中,如何设置组合框ComboBox控件下拉列表的高度
方法一:(只适用于静态创建)
如果是从MFC资源框中拖放下拉控件,那么可以单击下拉框的向下箭头,调整弹出的虚线框,就可以实现了。

方法二:(只适用于动态创建)
在动态创建下拉控件的Create函数中,RECT变量的高度Height设置大些,下拉列表的高度 = Height - ComboBox控件的高度

方法三:(适用于动态创建、静态创建)
捕获下拉控件的CBN_DROPDOWN消息,然后通过MoveWindow或SetWindowPos函数,可以实时修改下拉列表的高度

说明:
用系统API MoveWindow、SetWindowPos,这个函数对ComboBox改变大小操作时改变的不是编辑框大小,而是下拉列表的大小

方法三对应的实例如下:
void CA13Box::OnDropdown() 
{
    //CA13Box为CComboBox的子类

    //设置下拉框的高度
    CRect rc;
    //如果是在主对话框中,可以使用 GetDlgItem(IDC_COMBO)->GetClientRect(&rc); 获取控件的大小
    GetClientRect(&rc); 
    //SetWindowPos函数里面,第五个参数中的100,就表示下拉列表显示的高度
    SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height()+100, SWP_NOZORDER|SWP_NOMOVE|SWP_SHOWWINDOW);
}

可以参考代码: http://download.csdn.net/detail/youyongyoumou/8772833
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页