ComboBox

一、设置下拉组合框自动适应字符串宽度:

1、重载CComboBox类

2、响应 CBN_DROPDOWN 消息

3、添加如下代码:void CMyComboBox::OnDropdown()
{
 this->RecalcDropWidth();
}

void CMyComboBox::RecalcDropWidth()
{
 int num = this->GetCount();
 int nWidth = 0;
 CString str;
 CClientDC dc(this);

 int nSave = dc.SaveDC();
 dc.SelectObject(GetFont());  //考虑字体与字号变化时的宽度调整
 int nScrollWidth = ::GetSystemMetrics(SM_CXVSCROLL); //下拉框的滚动条的宽度
 for (int i=0;i<num;i++)
 {
  GetLBText(i,str);
  int nLen = dc.GetTextExtent(str).cx+nScrollWidth;
  nWidth = max(nWidth,nLen);
 }

 nWidth += dc.GetTextExtent("0").cx;
 dc.RestoreDC(nSave);
 this->SetDroppedWidth(nWidth);
}

阅读更多
文章标签: dropdown
想对作者说点什么? 我来说一句

ImageComboBox.dll

2011年06月12日 44KB 下载

ExtJS Combobox二级联动列子

2011年01月10日 159KB 下载

ComboBox 自绘

2011年08月11日 44KB 下载

自绘ComboBox

2011年08月11日 17KB 下载

显示颜色的ComboBox

2010年07月02日 71KB 下载

COMBOBOX控件

2011年01月11日 8.73MB 下载

ComBoBox组件重写

2011年11月10日 577KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭