设置组合框字体的大小

来源:互联网 发布:软件开发 翻译 编辑:程序博客网 时间:2024/05/17 23:23

 

 示例1    设置组合框字体大小:

    组合框由两部分组成 

 

    一部分为编辑框  一部分为列表框

 

    为组合框捆绑一控件变量  m_comb_box

 

    编辑框和列表框中的字体 通过重载ctrcolor函数,捕捉编辑框和列表框分别实现:

 

 

 

 

     为编辑框设置字体

 

     在对话框初始函数   OnInitDialog() 中,为组合框变量设置字体setFont()

 

 

 

     这样 组合框的列表框字体就设置成功了,但是列表框中的字体还未有改变

 

 

     列表框中的字体需要重载ctrcolor 捕捉CTLCOLOR_LISTBOX 组合框


 

 

 

 

 

 


示例2   设置编辑框字体大小:

   

              编辑框1 需要改变字体    IDC_EDIT1   m_Edit  (控件变量)

              编辑框2 保持默认字体   IDC_EDIT2


1  初始化对话框

OnInitDialog(){CDialog::OnInitDialog();// TODO:  在此添加额外的初始化CRect Rect;m_Edit.GetClientRect(&Rect);  //编辑框1的范围CFont  m_font;  m_font.CreateFont(Rect.Height(), 0, 0, 0,  FW_BOLD, FALSE, FALSE, 0,  DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,  CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,  FIXED_PITCH | FF_MODERN, NULL);   m_Edit.SetFont(&m_font);  return TRUE;  // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE}

2 响应WM_CTRCOLOR消息

 WM_CTLCOLOR消息用来完成对EDIT、STATIC、BUTTON等控件设置背景和字体颜色


OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);// TODO:  在此更改 DC 的任何属性if (pWnd==GetDlgItem(IDC_EDIT1))  //只当窗口是编辑框1时,才设置字体 其他情况保持默认状态{CRect Rect;m_Edit.GetClientRect(&Rect);CFont  m_font;  m_font.CreateFont(Rect.Height(), 0, 0, 0,  FW_BOLD, FALSE, FALSE, 0,  DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,  CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,  FIXED_PITCH | FF_MODERN, NULL);  pDC->SelectObject(&m_font);  }// TODO:  如果默认的不是所需画笔,则返回另一个画笔return hbr;}


参考资料:

 

 

 

http://www.nokiamobile.org.cn/18_090809_1692492.html

http://topic.csdn.net/t/20040819/16/3290826.html

http://www.cppblog.com/xbgs/archive/2006/06/23/8940.html