手动设置Combox的下拉宽度

Posted 太阳石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手动设置Combox的下拉宽度相关的知识,希望对你有一定的参考价值。

有时候下拉框(MFC标准叫组合框,CComboBox)中条目文本很多,超过了下拉框的宽度,如果不加设置的话,超过的部分文本将无法显示,查找MSDN,发现解决方法,代码如下

 

// The pointer to my combo box.
    extern CComboBox* pmyComboBox;

    // Set the height of every item so the item
    // is completely visible.
    CString str;
    CSize   sz;
    int     dx=0;
    CDC*    pDC = pmyComboBox->GetDC();
    for (int i=0;i < pmyComboBox->GetCount();i++)
    {
        pmyComboBox->GetLBText( i, str );
        sz = pDC->GetTextExtent(str);

        // Only want to set the item height if the current height
        // is not big enough.
        if (pmyComboBox->GetItemHeight(i) < sz.cy)
            pmyComboBox->SetItemHeight( i, sz.cy );

        // Only want to set the item width if the current width
        // is not big enough.
        if (pmyComboBox->GetDroppedWidth() < sz.cx)
        {
            pmyComboBox->SetDroppedWidth(sz.cx + 20);
        }
    }
    pmyComboBox->ReleaseDC(pDC);

效果图如下:

 

以上是关于手动设置Combox的下拉宽度的主要内容,如果未能解决你的问题,请参考以下文章

C# winform combox 下拉框选项过长,显示不全,怎么解决

c#里面ComBox下拉框里面比较里面是不是有这个值

c#里面,ComBox下拉框比较里面,是不是有这个值?

QT怎么设置QComboBox弹出下拉框的高度

C# combox 设置显示下拉菜单的第一项,如图。还有下拉选项的索引怎么回事,所索引为零是菜单的第一个选项

ligerui combox 静态怎么设置选中