Combox控件的高度问题

在对话框程序中做的一个小实验:

写这个程序主要是要验证以下内容:

1、Create()函数中CRect参数主要是用于创建组合框的长度,以及在下拉情况下的长度。而这些设置在自绘情况下都是可以自己控制的。

2、而对于非自绘情况下,要设置每个文本的高度,可以通过setItemHeight()来做到。当参数1为-1时,代表的意义是所有item的高度都为参数2的值。

3、关于字体的设置问题

4、detach()的使用

 

1、在构造函数中写的

private:
 CComboBox mComboBox;

 

2、::OnInitDialog()中写的

 mComboBox.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST, CRect(10, 10, 200, 300), this, 1);
 mComboBox.AddString(_T("item1"));
 mComboBox.AddString(_T("item2"));

 CString strLBText;
 CSize   size;
 int spacing;
 CDC*    pDC = mComboBox.GetDC();
 spacing = mComboBox.GetItemHeight(0);
 LOGFONT lf;
 CFont *m_pFont;
 m_pFont = GetFont();
 m_pFont->GetLogFont(&lf);
 lf.lfHeight = 20;
 m_pFont->Detach();
 m_pFont->CreateFontIndirect(&lf);
 mComboBox.SetFont(m_pFont);
 m_pFont->Detach();

 for (int i = 0; i < mComboBox.GetCount(); i++)
 {
  mComboBox.GetLBText(i, strLBText);
  size = pDC->GetTextExtent(strLBText);
  
  // Only want to set the item height if the current height
  // is not big enough.
  if (mComboBox.GetItemHeight(i) < size.cy)
   mComboBox.SetItemHeight( i, size.cy );

  spacing = mComboBox.GetItemHeight(0);
 }

 mComboBox.ReleaseDC(pDC); 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值