untitled-30.txt
来自「mfc 教程」· 文本 代码 · 共 33 行
TXT
33 行
第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 + =
减小字号Ctrl + -
显示快捷键?