我想在mfc视图中输出一段文字,然后调用系统的字体来更改这段文字的字体

这是输出的文字:pDC->SetTextColor(m_clr);CRectrect;GetClientRect(&rect);pDC->SetTextAlign(TA_... 这是输出的文字:
pDC->SetTextColor(m_clr);
CRect rect;
GetClientRect(&rect);
pDC->SetTextAlign(TA_CENTER);
pDC->TextOutW(rect.Width()/2,rect.Height()/2,L"菜单实例");

这个是调用系统的字体库
if(fontDlg.DoModal())

{
LOGFONT lf;
if(m_font.m_hObject)
m_font.DeleteObject();
fontDlg.GetCurrentFont(&lf);
m_font.CreateFontIndirectW(&lf);
}
然后怎么改啊。就是在字体库中选择字体然后视图中的也会跟着变。

谢谢了
展开
 我来答
bhtzu
推荐于2017-10-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4190万
展开全部
  1. 首先m_font要作为类成员变量。

  2. 在m_font.CreateFontIndirectW(&lf)这句之后调用Invalidate();

  3. 上面一段代码应该是在OnDraw函数中,那么在TextOut前后加上字体选择即可:

CFont* oldfont = pDC->SelectObject(&m_font);
pDC->TextOutW(rect.Width()/2,rect.Height()/2,L"菜单实例");
pDC->SelectObject(oldfont);

大概就是这样,因为你没有描述更多信息,可能具体步骤需要调整。

追问
等我回去试试。我想要的其实就是那个字体选择的方法。先谢谢啦
追答
不客气,欢迎这里提问,有事可以定向求助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式