手动设置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 下拉框选项过长,显示不全,怎么解决