📄 untitled-30.txt
字号:
第2章在窗口中绘图59
数减少了静态链接的程序代码,从而减小了可执行程序的大小。
创建字体之后,把它选人设备描述表井调用DrawText、Textout和其他CDC文本函数,用
这种字体绘图。下面的0nPalnt处理程序在窗口的中部画了“He11。,MFC”。但是这次文本
是用72一点Anal字样画的,并带有阴影。(参见图2-9。)
void CMainwindow:: onPaint()
5
CRect rect;
GetCI。entRect(&rect);
CF0flt foflt;
font.CreatePointFont(720,T(”Anal”》;
CPaintDC dc(this);
dc.Selectobject(&上out);
dc. SetBkMode( TRANSPARENT);
CStrinu strino一一T(”Hello, MFC”);
rect.offsetRect(16,16);
dc.SetTextColor(RGB(192,192,192》;
dc.DrawText(string,&rect, DT.SINGLELINE
DT_CENTERI DT_VCENTER);
rect.offsetRect(16,16);
dc· SetTextColor( RGB( 0, 0, 0》;
dc.DrawText(string,&rect,DT_SINGLELINE
DT_CENTERI DTVCENTER);
g
阴影效果是通过重画两次文本字符串实现的——一次画在从窗口中心向右、向下偏移
几个像素点的位置,一次画在窗口的中心位置。 MFC的 CRect:: offsetRect函数用这种将矩
形不断地在X和y方向上偏移一段指定距离的方法,很容易地“移动”了矩形。
如果系统没有装 Times New Roman字样,但您又要创建 Times New Roman字体,这时会发
生些什么呢? GDI会选择系统中相近的字样,而不让这次调用失败。通过调用内部的宇体
映射算法,GDI选择出与原字样最相近的一个,因此结果往往不是用户所期望的。但至少您
的应用程序不会出现这种怪现象:在一个系统上可以正常输出文本,而在另一个系统上则
不可思议地没有任何输出。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -