MFC 中使用CFontDlg可以改变编辑框中文本字体,不能改变文本颜色,应该怎么办?
我的代码:voidCEditorView::OnSetFont()//”设置字体“菜单处理函数{CFontDialogdlg;//字体设置对话框if(dlg.DoModa...
我的代码:
void CEditorView::OnSetFont() //”设置字体“菜单处理函数
{
CFontDialog dlg; //字体设置对话框
if(dlg.DoModal()==IDOK)
{
if(m_font.m_hObject)//m_font为CFont对象
m_font.DeleteObject();
m_font.CreateFontIndirect(dlg.m_cf.lpLogFont); //获取设置字体
m_strFontName=dlg.m_cf.lpLogFont->lfFaceName;
m_ctrlEdit->GetWindowText(m_str1);
m_ctrlEdit->SetFont(&m_font);//设置编辑框字体
m_ctrlEdit->SetWindowText(m_str1); //用新设置的字体显示文本
}
} 展开
void CEditorView::OnSetFont() //”设置字体“菜单处理函数
{
CFontDialog dlg; //字体设置对话框
if(dlg.DoModal()==IDOK)
{
if(m_font.m_hObject)//m_font为CFont对象
m_font.DeleteObject();
m_font.CreateFontIndirect(dlg.m_cf.lpLogFont); //获取设置字体
m_strFontName=dlg.m_cf.lpLogFont->lfFaceName;
m_ctrlEdit->GetWindowText(m_str1);
m_ctrlEdit->SetFont(&m_font);//设置编辑框字体
m_ctrlEdit->SetWindowText(m_str1); //用新设置的字体显示文本
}
} 展开
1个回答
展开全部
如果是对话框,改变字体颜色要到OnCtlColor消息函数里进行设置才会有效果或者直接利用GDI函数SetTextColor进行设置。
追问
我是想把编辑控件里的内容改变颜色,而且颜色是可以选择的,类似于调用一个特殊的颜色设置对话框;我上面的代码是调用了一个CFontDialog 字体设置对话框,本来是有颜色选项的,但选了没效果。
追答
我看了你的方法,改变字体没问题,但改变字体颜色不起作用,CFontDialog 对话框里可以获取设置字体及颜色,可以利用CFontDialog 的GetColor()函数获取设置的字体颜色,然后在利用我前面说的办法改变字体颜色。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询