自动字体处理类






4.95/5 (8投票s)
一个使 LOGFONT 工作更轻松的类
CAutoFont
类旨在消除每次需要创建或使用字体时,不断且繁琐地填充LOGFONT
结构的任务。它的设计目的是使字体操作成为一项简单的任务。这是一个简短的例子:
void CMyView::OnPaint() { CPaintDC dc(this); CAutoFont autofont("Courier New"); autofont.SetBold(TRUE); autofont.SetItalic(TRUE); CFont *oldFont=dc.SelectObject(&autofont); dc.SetBkMode(TRANSPARENT); dc.TextOut(100,100,"Hello World!"); dc.SelectObject(oldFont); }
如您所见,CAutoFont
的工作方式与标准的CFont
对象完全相同(事实上,它是从CFont
派生的),只是它内置了设置其参数的方法,而无需处理冗长的LOGFONT
结构。包含两个方法可以将字体转换为字符串。这对于将字体发送到注册表和从注册表接收字体非常有用,例如。这些方法是CAutoFont::ContractFont
和CAutoFont::ExtractFont
。
更新
CAutoFont
现在内置了更多功能。对于忘记是谁提出的建议,我表示歉意,但应另一位 MFC 用户的建议,我在ContractFont
和ExtractFont
函数中添加了保存和恢复字体颜色的功能。还有两个新函数。GetFontFromDialog
允许您轻松地将CFontDialog
集成到您的应用程序中,该应用程序会自动更新CAutoFont
类。如果需要,还会将CFont
对象和字体颜色的引用(通过指针)传递回调用者。第二个函数,SetDC
,设置一个HDC
引用供类在调用GetFontFromDialog
和SetFontColor
时使用。