65.9K
CodeProject 正在变化。 阅读更多。
Home

自动字体处理类

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (8投票s)

1999年11月20日

CPOL

1分钟阅读

viewsIcon

151067

downloadIcon

2633

一个使 LOGFONT 工作更轻松的类

Sample Image

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 引用供类在调用GetFontFromDialogSetFontColor时使用。

© . All rights reserved.