C/C++资料 ·

MFC字体选择CFontDialog对话框、字体选择对话框

一、CFontDialog对话框

CFontDialog类对象可以提供一个选择不同字体的对话框.

CFontDialog类中常用的成员函数如表1所示。

1   CFontDialog类中常用的成员函数

  数  名     明
GetCurrentFont 返回用户选择的字体
GetFaceName 返回用户在对话框中设置的字体名称
GetSize 返回用户在对话框中设置的字体大小
GetColor 返回用户在对话框中设置的字体颜色

GetCurrentFont是常使用的成员函数,它可以返回一个LPLOGFONT结构指针,这个结构记录了用户在对话框中所选择的字体的名称、大小、颜色等信息。

程序代码如下:

void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
    CDC* pDC=this->GetDC();

    CFontDialog dlg;

    dlg.DoModal();

    CFont Font;

    LOGFONT LogFont;

    dlg.GetCurrentFont(&LogFont);

    Font.CreateFontIndirect(&LogFont);

    COLORREF FontColor;

    FontColor=dlg.GetColor();

    pDC->SetBkMode(TRANSPARENT);    //设置背景透明

    pDC->SetTextColor(FontColor);   

    pDC->SelectObject(&Font);

    pDC->TextOut(point.x,point.y,dlg.GetFaceName());   

    CDialog::OnLButtonDown(nFlags, point);
}
IsStrikeOut 用户在对话框中设置的字体是否带有删除线
IsUnderline 用户在对话框中设置的字体是否带有下划线
IsBold 用户在对话框中设置的字体是否加粗显示
IsItalic 用户在对话框中设置的字体是否加斜显示

原文:http://blog.csdn.net/guoqingchun/article/details/8622394

二、字体选择对话框

void CGraphicView::OnFont()
{
    CFontDialog dlg;
    if( IDOK == dlg.DoModal() )
    {
        if( m_font.m_hObject )    // 如果m_font对象已经和某个字体资源相关联,要先释放这个资源,之后才能和新的资源进行关联,否则会报错
            m_font.DeleteObject();
        m_font.CreateFontIndirectW( dlg.m_cf.lpLogFont );
        m_strFontName = dlg.m_cf.lpLogFont->lfFaceName;
        Invalidate();  // 使窗口无效,就会调用OnDraw函数实现重绘,在OnDraw函数中实现重绘操作;
    }
}

效果图:

MFC字体选择CFontDialog对话框、字体选择对话框 C/C++资料 第1张