首先要了解
CFont类,它
封装了一个
Windows
图形设备接口(
GDI)字体,并为操作字体提供了成员函数
。使用CreatFontW函数来创建字体。函数的原型如下:
BOOL CreateFont( int nHeight, // 字体高度:0为默认高度,非0绝对值为字体高度
int nWidth, // 字体宽度
int nEscapement, // 文本行的倾斜度
nt nOrientation, // 字符基线的倾斜度
int nWeight, // 字体的粗细
// 如:FW_DONTCARE.FW_THIN.FW_EXTRALIGHT……
BYTE bItalic, // 字体是否为斜体
BYTE bUnderline, // 字体是否带下划线
BYTE cStrikeOut, // 字体是否带删除线
BYTE nCharSet, // 字体的字符集:
// 如:.ANSI_CHARSET.DEFAULT_CHARSET.SYMBOL_CHARSET.....
BYTE nOutPrecision, // 字符的输出精度
BYTE nClipPrecision, // 字符裁剪的精度
BYTE nQuality, // 字符的输出质量
BYTE nPitchAndFamily, // 字符间距和字体族(低位说明间距,高位说明字符族)
LPCTSTR lpszFacename); // 字体名称
代码如下:
BOOL CreateFont( int nHeight, // 字体高度:0为默认高度,非0绝对值为字体高度
int nWidth, // 字体宽度
int nEscapement, // 文本行的倾斜度
nt nOrientation, // 字符基线的倾斜度
int nWeight, // 字体的粗细
// 如:FW_DONTCARE.FW_THIN.FW_EXTRALIGHT……
BYTE bItalic, // 字体是否为斜体
BYTE bUnderline, // 字体是否带下划线
BYTE cStrikeOut, // 字体是否带删除线
BYTE nCharSet, // 字体的字符集:
// 如:.ANSI_CHARSET.DEFAULT_CHARSET.SYMBOL_CHARSET.....
BYTE nOutPrecision, // 字符的输出精度
BYTE nClipPrecision, // 字符裁剪的精度
BYTE nQuality, // 字符的输出质量
BYTE nPitchAndFamily, // 字符间距和字体族(低位说明间距,高位说明字符族)
LPCTSTR lpszFacename); // 字体名称
代码如下:
float num = 80; CString str; str.Format(_T("%f"),num); m_Positionx.SetWindowTextW(str); m_Font = new CFont; m_Font->CreateFontW(100, 20, 0, 0, 100,FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, FF_SWISS, L"Arial"); m_Positionx.SetFont(m_Font);
HBRUSH CPipositionx::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: 在此更改 DC 的任何特性
if (pWnd->GetDlgCtrlID() == IDC_EDIT_POSITIONX)
{
pDC->SetTextColor(RGB(255,0,0));
}
// TODO: 如果默认的不是所需画笔,则返回另一个画笔
return hbr;
}