www.pudn.com > IP_phone.rar > MyEditCtrl.cpp


/**********************************************************/ 
/*类名:CMyEditCtrl                                       */ 
/*简述:自定义背景Edit类                                  */ 
/**********************************************************/ 
// MyEditCtrl.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "MyEditCtrl.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CMyEditCtrl 
 
CMyEditCtrl::CMyEditCtrl() 
{ 
	m_brHollow.CreateStockObject(HOLLOW_BRUSH);	 
} 
 
CMyEditCtrl::~CMyEditCtrl() 
{ 
} 
 
 
BEGIN_MESSAGE_MAP(CMyEditCtrl, CEdit) 
	//{{AFX_MSG_MAP(CMyEditCtrl) 
	ON_WM_CTLCOLOR_REFLECT() 
	ON_WM_LBUTTONUP() 
	ON_CONTROL_REFLECT(EN_CHANGE, OnChange) 
	//}}AFX_MSG_MAP 
	ON_WM_ERASEBKGND() 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CMyEditCtrl message handlers 
 
HBRUSH CMyEditCtrl::CtlColor(CDC* pDC, UINT nCtlColor)  
{ 
	pDC->SetBkMode(TRANSPARENT); 
	pDC->SetTextColor(RGB(0xff,0xff,0xff)); 
	return m_brHollow; 
} 
 
void CMyEditCtrl::OnLButtonUp(UINT nFlags, CPoint point)  
{ 
	Invalidate(); 
	CEdit::OnLButtonUp(nFlags, point); 
} 
 
void CMyEditCtrl::OnChange()  
{ 
	Invalidate(); 
} 
 
BOOL CMyEditCtrl::OnEraseBkgnd(CDC* pDC)  
{ 
	BITMAP bm; 
	m_bmp.GetBitmap(&bm); 
	m_pbmCurrent = &m_bmp; 
	CDC dcMem; 
	dcMem.CreateCompatibleDC(pDC); 
	CBitmap* pOldBitmap = dcMem.SelectObject(m_pbmCurrent); 
	pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcMem,0,0,SRCCOPY); 
	dcMem.SelectObject(pOldBitmap); 
    return TRUE;  
}