本文使用CFont类来设置文字的属性,用到的函数是CreateFont,该函数的说明可以参照msdn。
CFont myFont; //创建一个字体对象
myFont.CreateFont(
16, //1.字体高度。
0, //2. =0 表示保持纵横比
0, 0, //3.4.角度
400, //5.线的宽度,400为正常
FALSE, FALSE, 0, //6.7.8.斜体,下划线,删除线(否)
ANSI_CHARSET, //9.字符集
OUT_DEFAULT_PRECIS, //10.精度
CLIP_DEFAULT_PRECIS, //11.
DEFAULT_QUALITY, //12.质量
DEFAULT_PITCH|FF_SWISS, //13.强度和家族
"Arial" //14.字体名称
);
本次实验的最大目标是让文字旋转90°显示,通过设置参数nEscapement和nOrientation来实现,这两个值应该相同。
详细代码如下所示:
void CPressText::OnPaint()
{
CPaintDC dc(this); // device context for painting
UpdateData(TRUE);
// TODO: 在此处添加消息处理程序代码
CFont myFont;
myFont.CreateFontA(30,15,900,900,FW_NORMAL,FALSE,FALSE,FALSE,GB2312_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"Arial");
CFont* pOldFont=dc.SelectObject(&myFont);
dc.SetTextColor(RGB(255,255,255));
dc.SetBkColor(RGB(0,0,0));
dc.TextOutA(30,10,"参与游戏,请按住任意键!");
dc.SelectObject(pOldFont);
// 不为绘图消息调用 CDialog::OnPaint()
}
另外,也可以通过LOGFONT来设置文字属性。