控件字体问题

控件:Combo Box

代码

    static CFont font;
    font.CreateStockObject(ANSI_VAR_FONT);
    combo.SetFont(&font); 

 随后对 Combo Box 进行 AddString 操作。 字体将是 ANSI_VAR_FONT

 

  CDC* pDC = pComboBox->GetDC();
  pDC->GetTextFaceW(strTest);    // Notice Here @1
  static CFont font;
  font.CreateStockObject(ANSI_VAR_FONT);
  pDC->SelectObject(font);
  pDC->GetTextFaceW(strTest);  // Notice Here @2

接着获取控件的CDC指针。在@1你可以发现,此时的字体是“SYSTEM”,和控件本身的SetFont设定的字体无关。直到我们令CDC装载这个字体,在随后的@2中,出现的才是与ANSI_VAR_FONT对应的字体。

这种情况的知晓对以下情况有帮助:

1.通过 CComboBox::AddString 添加字符串,对CDC加载与控件一致的字体,得以计算所添加字符串的逻辑长度。以次动态控制Combo Box的显示长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值