具体实现如下:
1.页面设计
把静态文本控件按数字显示格式排列,一个排列好的数字如图a所示。为了使控件的ID连续以方便函数处理,所设置显示每一个数字的控件ID是连续的,这样就可于用前一个控件的ID加减一个整数来得到下一个控件的ID.如图所示控件的ID顺序和控件所显示的数字一致。为了使界面更美观,给做好的控件加一个背景矩形控件,每次矩形所显示的颜色和控件的颜色不同,这样就可以给人一种动态逼真的感觉。
2.在工程中加入一个类CyColor,用于绘制静态文本控件的颜色。相应的成员函数和成员变量如下:
PaintStatic用来为绘制静态文本控件颜色,CWnd *dlg是控件的指针,在调用时用GetDlgItem(ID)获得指针。COLORREF cr是所选的颜色,CString str是需要显示的文字。
void MyColor::PaintStatic(CWnd *dlg,COLORREF cr,CString str)
{
CClientDC dc(dlg);
CRect rect;
dlg->GetClientRect(&rect);
CPen pen(PS_SOLID,1,RGB(50,0,10+100));
dc.SelectObject(&pen);
CBrush pBrush(cr);
dc.SelectObject(&pBrush);
dc.Rectangle(rect);
dc.SetBkMode(TRANSPARENT);
dc.TextOut(rect.left+10,rect.top+5,str);
}