void CYycqView::OnMenuFont() 
{
// TODO: Add your command handler code here
LPLOGFONT m_lf;
CFontDialog Fontdlg(NULL,CF_EFFECTS|CF_SCREENFONTS,NULL,NULL);
CFont *m_pFont=new CFont;
if(IDOK==Fontdlg.DoModal())
{
m_lf=Fontdlg.m_cf.lpLogFont;
CFont *m_pFont=new CFont;
m_pFont->CreateFontIndirect(m_lf);
GetRichEditCtrl().SetFont(m_pFont,TRUE);
}
}
调用字体对话框后发现字体颜色不变,该怎么解决?另外设置三个按钮分别代表粗体、斜体和下划线。同样的代码,斜体和下划线都很正常,粗体没反应;但要是调用字体对话框后,再设置粗体,就完全正常了。这该怎么解决?
void CYycqView::OnInitialUpdate()
{
CRichEditView::OnInitialUpdate();
// Set the printing margins (720 twips = 1/2 inch).
SetMargins(CRect(720, 720, 720, 720));
    tag2=tag3=0;
    tag1=1;
}void CYycqView::OnMenuBold() 
{
// TODO: Add your command handler code here
CHARFORMAT cf1;
GetRichEditCtrl().GetSelectionCharFormat(cf1);
if(tag1==0) 
{
cf1.dwEffects|=CFM_BOLD;
tag1=1;
}
else
{
cf1.dwEffects&=0xfffffffe;
tag1=0;
}
GetRichEditCtrl().SetSelectionCharFormat(cf1);
}void CYycqView::OnMenuIntatic() 
{
// TODO: Add your command handler code here;
CHARFORMAT cf1;
GetRichEditCtrl().GetSelectionCharFormat(cf1);
if(tag2==0) 
{
cf1.dwEffects|=CFM_ITALIC;
tag2=1;
}
else
{
cf1.dwEffects&=0xfffffffd;
tag2=0;
}
GetRichEditCtrl().SetSelectionCharFormat(cf1);
}void CYycqView::OnMenuUnderline() 
{
// TODO: Add your command handler code here
CHARFORMAT cf1;
GetRichEditCtrl().GetSelectionCharFormat(cf1);
if(tag3==0) 
{
cf1.dwEffects|=CFM_UNDERLINE;
tag3=1;
}
else
{
cf1.dwEffects&=0xfffffffb;
tag3=0;
}
GetRichEditCtrl().SetSelectionCharFormat(cf1);
}