不管什么程序,都是一样的
自己用CreateFont 或 CreateFontIndirect()创建一个特殊字体,然后使用
SelectObject(&YourFont)就可以了!
自己用CreateFont 或 CreateFontIndirect()创建一个特殊字体,然后使用
SelectObject(&YourFont)就可以了!
解决方案 »
- 求助:MFC中VIEW类画图遇到的宏定义的问题
- vc 单文档程序中替换view视图类出错该如何解决
- Record set failed to open?
- 请问DEV C++如何插入资源文件时生成可用的resource.h?
- SNMP在何操作系统下开发?
- 取edit控件内容时,不能得到int型变量值
- 关于ADO操作数据表的修改
- 高分求金山词霸 取词窗口 的实现方法。在线等!解决后另开帖给分!!
- 救命啊 就要比赛 了文件夹中的"查看"->"平铺"如何编程
- 用什么函数可以通过一个ASCII码得到一个字符,相反呢 ?
- 请问:98下的工程移到2000下,如何添加Unicode Debug和Unicode Release编译选项?
- 请问如何用opengl实现在一个球面上漫游
请问Julienjut(秋水)大侠, 这些函数应该写在什么位置上呢?
我的目的是让程序一开始运行就改变所有的字体.
多谢!!!!!!
一般推荐写在OnCreate()函数体中,不过如果程序一开始就把字体对象给替换了,可以会影响其它程序的正常显示(不知道具体什么样)。
CFont OldFont, NewFont;
LOGFONT logFont;
logFont.lfHeight=30;
logFont.lfWidth=0;
logFont.lfEscapement=0;
logFont.lfOrientation=0;
logFont.lfWeight=FW_NORMAL;
logFont.lfItalic=0;
logFont.lfUnderline=0;
logFont.lfStrikeOut=0;
logFont.lfCharSet=ANSI_CHARSET;
logFont.lfOutPrecision=OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision=CLIP_DEFAULT_PRECIS;
logFont.lfQuality=PROOF_QUALITY;
logFont.lfPitchAndFamily=VARIABLE_PITCH|FF_ROMAN;
strcpy(logFont.lfFaceName,"Times New Roman"); GetFont()->GetLogFont(&logFont);
NewFont.CreateFontIndirect(&logFont);
SetFont(&NewFont);
CDC *pDC=GetDC();
&oldFont=pDC->SelectObject(newFont);
我把你的语句加入到了OnCreate中,但是没看出什么变化呀?
(比如控制菜单,按钮的字体都不变的)
小弟是新手 : )
多谢指教!!!!!!
但是语句应该写在哪呢?
我想把我这个程序所有的字体都改一下
如果是对话框,可以用向导直接改字体;
要是菜单的话 如何得到它的HWND?请指教!!!!!!
要是菜单的话 如何得到它的HWND?请指教!!!!!!
比如:CMenu menu=GetMenu()
menu.m_hWnd; 如何得到它的HWND
menu 根本不是一个CWnd,怎么会有SetFont函数呢?
请指教.
你说的是不是改VC开发环境的字体呀? 我改的是程序的字体的
可以在OnDraw或OnPaint中引用下面的代码:
CFont font;
CFont *pOldFont=NULL;
font.CreateFont(-30, 0, 0, 0, FW_LIGHT, FALSE, FALSE, 0, ANSI_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY, DEFAULT_PITCH | FF_ROMAN,"宋体");//一个例子
pOldFont = (CFont*) pDC->SelectObject(&(GetDocument()->font));//原来的字体
pDC->SetTextColor(...);//设置字体颜色再TextOut什么的就用你新的字体了。
注意:1。那个font可设为类的成员变量,初始化时就可以用CreateFont,这样提高一些效率。2。pOldFont 不要丢啊。再用时可以再Select回去。