在VB或者.NET环境下,静态控件的颜色、字体大小等等属性都可以通过属性对话框很轻易的设定,但是在vc++环境下要实现同样的目的,必须自己手动编写代码实现,一种常用的做法是响应对话框的WM_CTRCOLOR消息。
HBRUSH CSettingDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{if (pWnd->GetDlgCtrlID()==IDC_LINE_STYLE)
{
pDC->SetTextColor(RGB(0,255,0));
//pDC->SetBkMode(TRANSPARENT);
pDC->SetBkColor(RGB(255,0,0));
return m_brush;
}
return hbr;
}
这样做也有其不方便的地方,需要对每一个控件设定,而且缺省的静态控件比较单调,所以自己视图扩展一下静态控件,于是通过继承CStatic类写了自己的一个扩展的静态类。
类定义文件:
#if !defined(AFX_STATICEX_H__436E57E9_F7E9_4728_8910_F22CDE1CE3D0__INCLUDED_)
#define AFX_STATICEX_H__436E57E9_F7E9_4728_8910_F22CDE1CE3D0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#e