Mfc子窗口修改Static Text控件的字体、大小、颜色

开门见山:创建子窗口的方法请参考我上一篇博客:http://blog.csdn.net/u014411348/article/details/53911682

主窗口修改Static Text控件网上已有很多大神给出了方法,小的就不再重复。

一、单纯改变字体大小、字体


1.请自行在窗口中添加一个Static Text控件并命名。在子窗口的类文件***.h文件下添加(如图1)CFont font1;//控件1CFont font2;//控件2

图1

2.在对应的***.cpp文件中的DoDataExchange(CDataExchange* pDX)函数中添加以下代码:font1.CreatePointFont(220, L"楷体");//控件1GetDlgItem(IDC_STATIC1)->SetFont(&font1); //更改控件1的字体font2.CreatePointFont(260, L"黑体");//控件2GetDlgItem(IDC_STATIC2)->SetFont(&font2);//更改控件2的字体

编译运行可下图结果:

 
   
 
   

 
   

图2

二、单纯改变字体大小、字体、颜色

改变颜色需响应WM_CTLCOLOR,有两种方法创建OnCtlColor()函数,
1.1.可使用类向导添加OnCtlColor()函数
1.2.可手动添加OnCtlColor()函数
在.h文件中添加函数声明:
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
在.cpp文件中添加:
BEGIN_MESSAGE_MAP(CDefinedViewDlg, CDialog)  
  ...  
  ON_WM_CTLCOLOR()
  ...
END_MESSAGE_MAP()
 //函数实现
HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   if (pWnd->GetDlgCtrlID()==IDC_E_TEST) //控件ID
      pDC->SetTextColor(RGB(255,0,0)); //设置颜色
   return hbr;
}
2.在OnCtlColor函数中添加代码实现修改控件,
HBRUSH Login::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何特性
	if (pWnd->GetDlgCtrlID() == IDC_STATIC1)
	{
		m_font.CreatePointFont(220, L"华文行楷");//控件1
		pDC->SetBkColor(RGB(0, 255, 0));//背景色为绿色
		pDC->SetTextColor(RGB(255, 0, 0));//文字为红色
		pDC->SelectObject(&m_font);//文字为22号字体,华文行楷
		return m_brush;
	}
	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
	return hbr;
}
 
   

图3

 
   
有疑问的朋友可留言!


 
   
 
  


你可能感兴趣的:(应用程序)