CFontDialog学习

void CMfcFontDlgDlg::OnBtnFont() 
{
    // Show the font dialog with all the default settings.
    CFontDialog dlg;
    dlg.DoModal();
}

void CMfcFontDlgDlg::OnBtnFontSpecial() 
{
    // Show the font dialog with 12 point "Times New Roman" as the selected font.
    LOGFONT lf;
    memset(&lf, 0, sizeof(LOGFONT));
    
    CClientDC dc(this);
    lf.lfHeight = -MulDiv(12, dc.GetDeviceCaps(LOGPIXELSY), 72);
    strcpy(lf.lfFaceName, "Times New Roman");
    
    CFontDialog dlg(&lf);
    // The code fragment creates a font based on the information we got from CFontDialog::m_cf variable.
    if (dlg.DoModal() == IDOK)
    {
        // Create the font using the selected font from CFontDialog.
        LOGFONT lf;
        memcpy(&lf, dlg.m_cf.lpLogFont, sizeof(LOGFONT));
        
        CFont font;
        VERIFY(font.CreateFontIndirect(&lf));
        
        // Do something with the font just created...
        CClientDC dc(this);
        CFont* def_font = dc.SelectObject(&font);
        dc.TextOut(5, 5, "Hello", 5);
        dc.SelectObject(def_font);
        
        // Done with the font. Delete the font object.
        font.DeleteObject();
    }
}

void CMfcFontDlgDlg::OnBtnFontProperty() 
{    
    // Get the characteristics
    CFontDialog dlg;
    if (dlg.DoModal() == IDOK)
    {
        // Get the characteristics of the currently selected font, if any.
        LOGFONT lf;
        dlg.GetCurrentFont(&lf);
        TRACE("Face name of the selected font = %s\n", lf.lfFaceName);
        // Get the face name of the selected font, if any.
        CString facename = dlg.GetFaceName();
        TRACE("Face name of the selected font = %s\n", facename);
        // Get the style name of the selected font, if any.
        CString stylename = dlg.GetStyleName();
        TRACE("Style name of the selected font = %s\n", stylename);
        // Get the size of the selected font, if any.
        int size = dlg.GetSize();
        TRACE("The size of the selected font = %d\n", size);
        // Get the color of the selected font, if any.
        COLORREF color = dlg.GetColor();
        TRACE("Color of the selected font = %8x\n", color);
        // Get the weight of the selected font, if any.
        int weight = dlg.GetWeight();
        TRACE("Weight of the selected font = %d\n", weight);
        // Is the selected font displayed with strikeout?
        BOOL strikeout = dlg.IsStrikeOut();
        TRACE("Is the selected font displayed with strikeout? %d\n", strikeout);
        // Is the selected font underlined?
        BOOL underline = dlg.IsUnderline();
        TRACE("Is the selected font underlined? %d\n", underline);
        // Is the selected font bold?
        BOOL bold = dlg.IsBold();
        TRACE("Is the selected font bold? %d\n", bold);
        // Is the selected font italic?
        BOOL italic = dlg.IsItalic();
        TRACE("Is the selected font italic? %d\n", italic);
    }    
}

 

posted on 2017-10-21 11:29  我来乔23  阅读(516)  评论(0编辑  收藏  举报

导航