原理是把static取指针,强制转换成CEdit,
CFont * f;
f = new CFont;
f->CreateFont(45, // nHeight
0, // nWidth
0, // nEscapement
0, // nOrientation
FW_NORMAL, // nWeight
FALSE, // bItalic
FALSE, // bUnderline
0, // cStrikeOut
ANSI_CHARSET, // nCharSet
OUT_DEFAULT_PRECIS, // nOutPrecision
CLIP_DEFAULT_PRECIS, // nClipPrecision
DEFAULT_QUALITY, // nQuality
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
_T("Arial")); // lpszFac
*CEdit->SetFont(f);
字体大小就改变了。而后的输出就相应的改变了。一般来说,如果不是特别灵活的场合,就在初始化中定义一次就算了,当然了onsize时候,还要算一下吧。
颜色则如下所述:
1、只要在C...App的函数InitInstance()中添加一行SetDialogBkColor(RGB(255,255,255),RGB(0,0,0));
就可以设置窗口的背景和里面text的颜色了。
2、响应对话框类中的WM_CTLCOLOR消息,在生成的函数OnCtlColor 中,添加你的实现代码:
如:
HBRUSH CGroupBoxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH B = CreateSolidBrush(RGB(255,255,255));
switch(pWnd->GetDlgCtrlID())
{
case(IDC_STATIC1):
pDC->SetTextColor(RGB(255,0,192));//设置控件背景颜色
pDC->SetBkMode(TRANSPARENT);//设置控件背景为透明
return (HBRUSH)B;
break;
case(IDC_EDIT1):
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)B;
break;
case(IDC_CHOICE):
pDC->SetTextColor(RGB(255,128,0));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)B;
break;
case(IDC_RADIO1):
pDC->SetTextColor(RGB(255,0,20));
pDC->SetBkMode(TRANSPARENT);
return (HBRUSH)B;
break;
default:
break;
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);//若默认的不是所需画笔,则返回另一个画笔
}
或(个人感觉下面的方法很有用、也很实用)
HBRUSH CGroupBoxDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if ( nCtlColor== CTLCOLOR_EDIT)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,250,0));
HBRUSH B = CreateSolidBrush(RGB(255,255,255));
return (HBRUSH) B;
}
else if(nCtlColor== CTLCOLOR_STATIC)
{
pDC->SetBkColor(RGB(255,255,255));
pDC->SetTextColor(RGB(0,0,255));
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
HBRUSH B = CreateSolidBrush(RGB(255,255,255)); 应当是具有强制性,有一个实例了,看情况上传到psdn看看。