📄 untitled-29.txt
字号:
58 MFC Windows程序设计(第2版)
构造了CF0nt对象之后,就可以通过调用CFont对象的CreateF0nt、CreateFontlndi。ct、Create-
PointFont或CreatePointFontlndirect函数创建带下划线的GDI字体了。如果想以像素为单位
指定字体尺寸,则调用 CreateFont或 CreateFontlndirect;如果想以点为单位指定字体尺寸,则
调用 C。atePointF0nt和 CreatePointFontlndirect。用 C。atePointFont函数创建 12一点屏幕字体只
需要两行程序代码:
CFontZout;
rout.CreatePolntFont(120,T(”Tunes New Roman”》;
而使用CreateFont函数则需要向设备描述表查询垂直方向上每英寸内像素的逻辑个数,并把
点转换为像素:
CClientDC dc(this);
。ntnHe。ght=-《dc.GetDev。ceCaps(LOGPIXELSY)。 12)/72);
CFont font;
font.CreateFont("Height, 0, 0, 0, FWNORMAL, O, O, O,
DEFAULT.CHARSET, OUT.CHARACTER.pRECIS, CLIp.CHARACTEfupRECIS,
DEFAULT_QUALITY, DEFAULT.PITCHIFF.DONTCARE,
.m(”m。mes wew n。。an’v;
顺便提一下,传递给Cre。tePointFont的数值是你所期望的点的大小的Ic倍。这样字体
尺寸就可以控制到点的1/10,考虑到大部分屏幕和其他常见输出设备相对较低的分辨率,
对于大多数应用场合,这个精度已经足够用了。
传递给CreateFont的诸多参数之中,有确定字的粗细度和字符是否倾斜的参数。您不能
用C。atePointFont创建一个粗黑、倾斜的宇体,但用CreatePointFontlndirect.就能达到目的了。
下面的程序代码用 CreatePointFontlndirect创建了一个 12一点、粗黑、倾斜的 Times New Ro。n
字体:
LOGFONTIf;
..ZeroMemory(&If, s。zeo上(If》;
If.上fHeight= 12O;
If.lfweight= FW.BOLD;
If.lfltdllC。TRUE;
::1。trcpy(If.上fFaceNa。e,_T(”T。mes New Roman”》;
CFont font 2
font.CreatePointFontlndlrect(&If);
LOGFONT是一个结构,它的字段定义了字体的所有特性。:: fferoMemory是一个 API函
数,它将一块内存清零。:: lstrcPy也是一个 API函数,它将一个文本字符串从一个内存位置
复制到另一个位置。您也可以用运行时的C函数memset和st。py代替(实际上,应该调用
一to。cpy向个是 strcpy,这样就能处理ANSI或 Unicode字符了),但是经常调用 Windows API函
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -