我想在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);
}
然后怎么改啊。就是在字体库中选择字体然后视图中的也会跟着变。
谢谢了 展开
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);
}
然后怎么改啊。就是在字体库中选择字体然后视图中的也会跟着变。
谢谢了 展开
1个回答
展开全部
首先m_font要作为类成员变量。
在m_font.CreateFontIndirectW(&lf)这句之后调用Invalidate();
上面一段代码应该是在OnDraw函数中,那么在TextOut前后加上字体选择即可:
CFont* oldfont = pDC->SelectObject(&m_font);
pDC->TextOutW(rect.Width()/2,rect.Height()/2,L"菜单实例");
pDC->SelectObject(oldfont);
大概就是这样,因为你没有描述更多信息,可能具体步骤需要调整。
追问
等我回去试试。我想要的其实就是那个字体选择的方法。先谢谢啦
追答
不客气,欢迎这里提问,有事可以定向求助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询