本方法对于背景为位图的对话框有效,其实也就是换了一种方式让编辑框相对于对话框是透明的,
把编辑框在当前对话框的位图给截取一部分出来用于填充编辑框
实现如下
派生一个CEdit的类,添加
CBitmap m_bmp;
CBrush m_brHollow;
添加WM_CTLCOLOR,WM_LBUTTONUP,EN_CHANGE,WM_ERASEBKGND响应消息
CMyEdit::CMyEdit()
{
m_brHollow.CreateStockObject(HOLLOW_BRUSH);
}
HBRUSH CMyEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(0,0,0));
return m_brHollow;
}
void CMyEdit::OnLButtonUp(UINT nFlags, CPoint point)
{
Invalidate();
CEdit::OnLButtonUp(nFlags, point);
}
void CMyEdit::OnChange()
{
Invalidate();
}
BOOL CMyEdit::OnEraseBkgnd(CDC* pDC)
{
BITMAP bm;
m_bmp.GetBitmap(&bm);
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
CRect rect;
C