对于自定义控件, 我们可以这样理解: 我们要处理控件的行为和显示. 我这里的需求只需要自定义编辑框的显示即可, 行为则使用默认即可. 通过重载CEdit就可以实现.
例如:
1. 主要实现内容
显示主要有: 边框, 背景, 文字颜色, 禁用态的各种颜色.2. 边框
边框可以通过重载OnNCPaint实现.例如:
void CMyEdit::OnNcpaint()
{
CRect rect, rc;
CDC* pDC;
int nSaveDC;
pDC = GetWindowDC();
GetWindowRect(&rect);
rect -= rect.TopLoeft();
rc = rect;
rc.InflateRect(-GetSystemMetrics(SM_CXEDGE), -GetSystemMetrics(SM_CYEDGE));
nSaveDC = pDC->SaveDC();
pDC->ExcludeClipRect(&rc);
pDC->FillSolidRect(&rect, RGB(255,255,255));
pDC->RestoreDC(nSaveDC);
pDC->FrameRect