class CEditEx : public CEdit
{
private:
CBrush m_brush;
COLORREF m_colBrush;
public:
CEditEx();
// Attributes
public:
VOID SetBackColor(COLORREF col);
// Operations
public:
// public:
virtual ~CEditEx();
// Generated message map functions
protected:
//{{AFX_MSG(CEditEx)
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
afx_msg void OnAppExit();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
.cpp
CEditEx::CEditEx() : m_colBrush(RGB(255,255,255)),m_brush(m_colBrush)
{
}
CEditEx::~CEditEx()
{
}
BEGIN_MESSAGE_MAP(CEditEx, CEdit)
//{{AFX_MSG_MAP(CEditEx)
ON_WM_RBUTTONDOWN()
ON_WM_CTLCOLOR_REFLECT()
ON_COMMAND(ID_APP_EXIT, OnAppExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/
// CEditEx message handlers
颜色 =wm_ctlcolor
VOID CEditEx::SetBackColor(COLORREF col)
{
//
m_colBrush = col;
m_brush.DeleteObject();
m_brush.CreateSolidBrush(col);
//
if( m_hWnd )
{
Invalidate(TRUE);
}
}
HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor)
{
pDC->SetBkColor(m_colBrush);
//return (HBRUSH)(m_brush.m_hObject);
return (m_brush);
}
快捷菜单
void CEditEx::OnRButtonDown(UINT nFlags, CPoint point)
{
POINT pt;
CMenu p;
p.LoadMenu(IDR_MENU1);
GetCursorPos(&pt);
CMenu* psub = p.GetSubMenu(0);
psub->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pt.x,pt.y,AfxGetMainWnd());
CEdit::OnRButtonDown(nFlags, point);
}
void CEditEx::OnAppExit()
{
MessageBox("Cedit");
}