MFC字体选择CFontDialog对话框、字体选择对话框
一、CFontDialog对话框
CFontDialog类对象可以提供一个选择不同字体的对话框.
CFontDialog类中常用的成员函数如表1所示。
表1
| 函 |
说 |
| 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函数中实现重绘操作;
}
}
效果图:
