2024年3月21日发(作者:)
mfc中字体设置详解
展开全文
为了能选用不同的字体和大小来输出文本串,须使用作为GDI对
象的 CFont类。Windows和常用的字处理软件(如Word)、绘图软
件(如CorelDraw)等应用软件会提供多种与设备无关的字体,主要
是 TrueType轮廓字体。 CFont类是CGDIObject的派生类:
CObject→ CGDIObject→ CFont。只有一个缺省构造函数CFont( );
在CFont类中,必须用字体创建成员函数CreateFont[Indirect]或
CreatePointFont [Indirect]来初始化。
其中的CreatePointFont提供了创建字体的一种简单方法:
BOOL CreatePointFont( int nPointSize, LPCTSTR
lpszFaceName, CDC* pDC = NULL );
参数nPointSize为字体的大小,以0.1点(像素/墨点/磅数)为
单位,如汉字的字号与nPointSize值及磅数的对应关系见下表:
汉字字号
初号
小初
一号
小一
二号
小二
三号
小三
四号
小四
五号
小五
六号
小六
nPointSize值
420
360
260
240
220
180
160
150
140
120
105
90
75
65
磅数
42
36
26
24
22
18
16
15
14
12
10.5
9
7.5
6.5
七号
八号
55
50
5.5
5
参数lpszFaceName为字体名称字符串的指针。
若pDC非空,则系统会将设备单位点自动转换为pDC中的映射
模式所指定的逻辑单位,如
CFont font;
PointFont(160, '宋体');
注意:CFont类的这些逻辑字体创建函数,并不是从无到有创建
一个新的GDI字体,而只是从GDI的物理字体库中选择与所设置参数
最匹配的字体。为了方便用户选择各种字体参数,可使用字体公用对
话框:
汉字的字号与磅数
字体公用对话框
使用字体公用对话框需要用到CFontDialog类。CFontDialog类
的构造函数为
CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD
dwFlags = CF_EFFECTS | CF_SCREENFONTS, CDC* pdcPrinter =
NULL, CWnd* pParentWnd = NULL );
其中,lplfInitial为逻辑字体结构的指针(可用CFont的成员函数
GetLogFont来获得,参见《Windows程序设计》),dwFlags为对
话框的可选参数,CF_EFFECTS表示对话框中有删除线和下划线复选框
与选择颜色的下拉式组合框,CF_SCREENFONTS则使得对话框中只
列出系统支持的显示字体。CFontDialog类的常用成员函数有:
virtual int DoModal( ); //显示对话框,返回IDOK或IDCANCEL
CString GetFaceName( ) const; //返回字体名称串
int GetSize( ) const; //返回所选择的字体大小,以0.1点为单位
COLORREF GetColor( ) const; //返回所选择的字体颜色常用的文
本输出函数有TextOut、DrawText和ExtTextOut,它们都是CDC类
的成员函数。下面只介绍最简单的TextOut:
BOOL TextOut( int x, int y, const CString& str );


发布评论