pDC->SetBkMode(TRANSPARENT);// you cannt edit it anymore pDC->SetTextColor(RGB(255,0,0)); return (HBRUSH)brush.GetSafeHandle();
derive a CEdit class namely CEditEx: in its header file: /////////////////////////////////// CBrush brHot; CBrush br; afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); ///////////////////////////////////in its implentation file: ////////////////////////////// CEditEx::CEditEx() { brHot.CreateSolidBrush(RGB(255,255,255)); br.CreateSolidBrush(RGB(221,221,221)); } BEGIN_MESSAGE_MAP(CEditEx, CEdit) //{{AFX_MSG_MAP(CEditEx) ON_WM_CTLCOLOR_REFLECT() //}}AFX_MSG_MAP END_MESSAGE_MAP()HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor) { //if(m_bMouseOver) { pDC->SetBkColor(RGB(255,255,255)); return brHot; } //else //{ // pDC->SetBkColor(RGB(221,221,221)); // return br; //} } //////////////////////////////I have published a mouse sensitive CEdit class on wwww.codeproject.com If you still have some interest,go and check it: "a focus-sensitive CEdit class" by DavidRipple
HBRUSH CAlarmDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch( nCtlColor )
{
case CTLCOLOR_EDIT:
pDC->SetBkColor( RGB(240,240,230) ); // yellow
return m_hEditBrush;
break;
default:
pDC->SetBkColor( RGB(BKRED,BKGREEN,BKBLUE) ); // red
return m_hOtherBrush;
}
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
HBRUSH m_hOtherBrush;
m_hOtherBrush = CreateSolidBrush( RGB(BKRED,BKGREEN,BKBLUE) );
pDC->SetBkColor( RGB(240,240,230) );
HBRUSH m_hEditBrush = CreateSolidBrush( RGB(BKRED,BKGREEN,BKBLUE) );
return m_hEditBrush;
return m_hEditBrush;啊呀,返回了一个局部对象的指针。在设置颜色时为什么有一些颜色设置无效??
如:
pDC->SetBkColor( RGB(14,14,255) ); //???
刷子这个颜色好像也不行啊。
pDC->SetTextColor(RGB(255,0,0));
return (HBRUSH)brush.GetSafeHandle();
in its header file:
///////////////////////////////////
CBrush brHot;
CBrush br;
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
///////////////////////////////////in its implentation file:
//////////////////////////////
CEditEx::CEditEx()
{
brHot.CreateSolidBrush(RGB(255,255,255));
br.CreateSolidBrush(RGB(221,221,221));
}
BEGIN_MESSAGE_MAP(CEditEx, CEdit)
//{{AFX_MSG_MAP(CEditEx)
ON_WM_CTLCOLOR_REFLECT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()HBRUSH CEditEx::CtlColor(CDC* pDC, UINT nCtlColor)
{
//if(m_bMouseOver)
{
pDC->SetBkColor(RGB(255,255,255));
return brHot;
}
//else
//{
// pDC->SetBkColor(RGB(221,221,221));
// return br;
//}
}
//////////////////////////////I have published a mouse sensitive CEdit class on wwww.codeproject.com
If you still have some interest,go and check it:
"a focus-sensitive CEdit class"
by DavidRipple