鱼C论坛

 找回密码
 立即注册
查看: 3291|回复: 4

在VC中如何让自己定义字体

[复制链接]
发表于 2013-3-1 16:15:54 | 显示全部楼层 |阅读模式
20鱼币
用VC编程,想知道怎么把控件的字体改成微软雅黑?知道的帮忙回答一下  小菜在此谢过

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-3-1 17:00:31 | 显示全部楼层
用API吧,C++改字体挺复杂的,不像VB那么简单。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-3-1 17:53:36 | 显示全部楼层
在OnPaint()中获取当前字体,将其里面的字体格式改成你需要的,然后设置回去    有人告诉我这样改 但是微软雅黑的字体是什么格式呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-3-6 21:28:04 | 显示全部楼层


【转】在VC中,你不能象VB一样随便设置每个控件的颜色和字体。实际上VB利用复杂的技术来实现这点。如果你希望改变VC控件的颜色,可以响应WM_CTLCOLORBTN、WM_CTLCOLORDLG和WM_CTLCOLOREDIT等消息,Windows在绘制控件时会发相应的消息给你的程序。你可以利用得到的hDC句柄来设置控件的前景和背景色。这样你就可以指定控件的颜色。要改变字体,可以响应WM_GETFONT消息。     处理消息的方法有两种:可以在父类中指定控件的颜色,或者利用MFC的消息反射在控件类中指定颜色。当控件需要重新着色时,工作框调用父窗口(通常是对话框)的CWnd: :OnCrtlColor,可以在父窗口类中重置该函数并指定控件的新的绘画属性。例如,下述代码将对话中的所有编辑控件文本颜色改为红色:     HBRUSH CAboutDig : : OnCtlColor (CDC * pDCM , CWnd * pWnd , UINT     nCtlColor)     {           HBRUSH hbr = CDialog : : OnCtlColor (pDC, pWnd , nCtlColor );           // 所有的编辑控件的前景色设置为红色      if (nCtlColor= = CTLCOLOR_EDIT )      pDC -> SetTextColor (RGB (255 , 0 , 0 , ) ) ;      return hbr ;     }     然而,由于每个父窗口必须处理通知消息并指定每个控件的绘画属性,所以,这种方法不是完全的面向对象的方法。控件处理该消息并指定绘画属性更合情合理。消息反射允许用户这样做。通知消息首先发送给父窗口,如果父窗口没有处理则发送给控件。创建一个定制彩色列表框控件必须遵循下述步骤。     首先,使用ClassWizard 创建一个CListBox的派生类并为该类添加下述数据成员。     class CMyListBox ; publilc CListBox     {     …     private:     COLORREF m_clrFore; // 前景色     COLORREF m_clrBack ; // 背景色     Cbrush m_brush ; // 背景画刷     …     } ;     其次,在类的构造函数中,初始化数据中。     CMyListBox : : CMyListBox ()     {     //Initialize data members .     m_clrFore =RGB (255 , 255 , 0) ; // 黄色     m_clrBack=RGB (0 , 0 , 255) ; // 兰色     m_brush . CreateSolidBrush (m _clrBack );     }     最后,使用ClassWizard处理反射的WM_CTLCOLOR(=WM_CTLCOLOR)消息并指定新的绘画属性。     HBRUSH CMyListBox : : CtlColor (CDC* pDC, UINT nCtlColor )     {     pDC—>SetTextColor (m_clrFore);     pDC—>SetBkColor (m_clrBack);     return (HBRUSH) m_brush.GetSafeHandle ()     }     现在,控件可以自己决定如何绘画,与父窗口无关。     如果你要实现更复杂的效果,就需要将控件设置为Owner Draw,然后利用WM_DRAWITEM消息来自行绘制控件。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-4-10 16:53:24 | 显示全部楼层
Tools—>Options—>最上面一栏右移fornat
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-10 16:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表