mfc程序中,为对话框中的编辑框增加一个字体选择按钮,按钮用CFontDialog类对象

CFontDialog对象怎么初始化,才可以使字体选择框出现以后显示的选择的字体是宋体,字形是常规,大小是小四,效果没有选择,颜色是黑的等等,然后编辑框的初始字体就是这个... CFontDialog对象怎么初始化,才可以使字体选择框出现以后显示的选择的字体是宋体,字形是常规,大小是小四,效果没有选择,颜色是黑的等等,然后编辑框的初始字体就是这个显示的字体,还有如果要把这个编辑框中的字符串传递出去,怎么把这个字体信息传递出去? 展开
 我来答
百度网友e81bb48
2011-05-12 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:119万
展开全部
// 初始化 m_Font(logfont类型) m_ColorFont (COLORREF类型)
memset(&m_Font, 0, sizeof(LOGFONT));
CClientDC dc(this);
m_Font.lfHeight = -MulDiv(12, dc.GetDeviceCaps(LOGPIXELSY), 72);
strcpy(m_Font.lfFaceName, "宋体");
m_ColorFont = RGB(0,0,0);
// CFileDialog
CFontDialog fontDlg(&m_Font);
fontDlg.m_cf.rgbColors = m_ColorFont ;
if ( IDOK == fontDlg.DoModal() )
{// 字体选择对话框
fontDlg.GetCurrentFont( &m_Font );
m_ColorFont = fontDlg.GetColor();
}
// 传递方式可将其他地方设置成指针, pDlg为包含上面m_Font成员的对话框指针
LOGFONT* m_pFont = &(pDlg->m_Font);
ll3096
2011-05-12 · TA获得超过108个赞
知道答主
回答量:96
采纳率:0%
帮助的人:110万
展开全部
CFontDialog( LPLOGFONT lplfInitial = NULL, DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS, CDC* pdcPrinter = NULL, CWnd* pParentWnd = NULL );
第一个参数设置默认字体,
typedef struct tagLOGFONT {
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;
LOGFONT font;
//设置font初始值
CFontDialog dlg(&font, CF_EFFECTS );
dlg.DoModal();
dlg.GetCurrentFont (&font);
font就是你选择的字体
追问
CFontDialog dlg(&font, CF_EFFECTS );
用这个font设置的值去初始化对话框,这个font怎么设置才能让字体是宋体,字形是常规,大小是小四,效果没有选择,颜色是黑的等等,还有我在编辑对话框中设置了一个CFont对象m_font去关联这个选择的字体或者初始化的字体,然后怎么把这个字体传递到其他地方去,比如我在视图中也有个CFont对象,怎么把这2个对象等同起来?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ITRunner
2011-05-12 · 超过33用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:87.6万
展开全部
CPaintDC dc(this);
LOGFONT lf;
CFont *p;
CFontDialog dlg;
dlg.DoModal();
dlg.GetCurrentFont(&lf);
font.CreateFontIndirect(&lf);
p=dc.SelectObject(&font);
dc.TextOut(10,10,"你是谁?");
dc.SelectObject(p);

如果不在onPaint函数中使用,把CPaintDC 改为CWindowDC即可
希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式