Not call OnCtlColor
hello,
I override the function OnCtlColor , but it not work at all.
I set break point in CAboutDlg::OnCtlColor, I never seen the program stopped
into debug mode in it.
who can tell me why it not work?
code is listed as the following:
//=================================
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
enum { IDD = IDD_ABOUTBOX };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
// Implementation
protected:
CTabCtrl m_tab1;
DECLARE_MESSAGE_MAP()
public:
afx_msg HBRUSH OnCtlColor (CDC * pDCM , CWnd * pWnd , UINT nCtlColor);
BOOL OnInitDialog();
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
}
HBRUSH CAboutDlg::OnCtlColor (CDC * pDCM , CWnd * pWnd , UINT nCtlColor)
{
HBRUSH rtn=CDialog::OnCtlColor(pDCM,pWnd,nCtlColor);
if((pWnd->GetSafeHwnd()!= m_tab1.GetSafeHwnd()) &&
(nCtlColor==CTLCOLOR_STATIC))
{
COLORREF color=m_tab1.GetDC()->GetBkColor();
pWnd->GetDC()->SetBkColor(color);
}
return rtn;
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TAB1, m_tab1);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, &CAboutDlg::OnTcnSelchangeTab1)
ON_BN_CLICKED(IDOK, &CAboutDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_BUTTON1, &CAboutDlg::OnBnClickedButton1)
END_MESSAGE_MAP()