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函数中实现重绘操作; } }
效果图: