字体对话框:
CFont font;
CFont *pFont = m_ctrlEdit.GetFont();
LOGFONT logfont;
pFont->GetLogFont(&logfont);
CFontDialog fontDlg(&logfont);
if(fontDlg.DoModal() == IDOK)
{
if(font.m_hObject)
{
font.DeleteObject();
}
LOGFONT tempFont;
fontDlg.GetCurrentFont(&tempFont);
font.CreateFontIndirect(fontDlg.m_cf.lpLogFont);
m_ctrlEdit.SetFont((&font));
Invalidate();
}
颜色对话框:
(1)在对话框类中定义一个COLORREF变量用来记录当前控件的字体颜色。
COLORREF m_TextColor;
(2)在对话框的初始化函数中将m_TextColor初始化为黑色
m_TextColor = RGB(0,0,0);
(3)添加对话框的WM_CTLCOLOR消息处理函数
HBRUSH CDialogTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
pDC->SetTextColor(m_TextColor);
// TODO: Return a different brush if the default is not desired
return hbr;
}
(4)添加按钮处理函数,代码如下:
void CDialogTestDlg::OnSetcolor()
{
// TODO: Add your control notification handler code here
CColorDialog colorDlg(m_TextColor);
if(colorDlg.DoModal() == IDOK)
{
m_TextColor = colorDlg.GetColor();
Invalidate();
}
}