1 新建SDI
2 在CView里面添加成员定义
public:
CFont m_font;
3 添加WM_CREATE消息处理函数,设定默认字体
int CNotePadDemoView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEditView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: 在此添加您专用的创建代码
CEdit& edit = GetEditCtrl();
if (m_font.m_hObject==NULL)
{
m_font.CreatePointFont(120, _T("Fixedsys"));
}
edit.SetFont(&m_font);
edit.SetTabStops(16);
return 0;
}
4 在菜单栏增加菜单,ID为ID_SET_FONT,添加事件处理函数
void CNotePadDemoView::OnSetFont()
{
// TODO: 在此添加命令处理程序代码
LOGFONT lf;
CFont* pFont = GetEditCtrl().GetFont();
if (pFont==NULL)
{
pFont = new CFont();
pFont->CreatePointFont(120, _T("Fixedsys"));
pFont->GetLogFont(&lf);
delete pFont;
}
else
{
pFont->GetLogFont(&lf);
}
CFontDialog fd(&lf);
if (fd.DoModal()==IDOK)
{
m_font.DeleteObject();
m_font.CreateFontIndirectW(&lf);
SetFont(&m_font);
}
}