VC改变DialogBar的背景色
折腾了一上午帮别人搞定了这个问题,记录一下,其实问题的关键就是需要从CDialogBar派生一个新类,在新类里面处理一下DoPaint事件就可以了
1.MainFrm.h添加#include "DialogBarEx.h"
class CMainFrame : public CFrameWnd
{
....
private:
CDialogBarEx m_wndDlgBar;
}
2.MainFrm.cpp添加
if (!m_wndDlgBar.Create(this, IDD_DIALOG1,
CBRS_TOP|CBRS_TOOLTIPS|CBRS_FLYBY, IDD_DIALOG1))
{
TRACE0( "Failed to create DlgBar\n ");
return -1; // fail to create
}
3.添加新类,CDialogBarEx,派生自CDialogBar
4.CDialogBarEx重载DoPaint
代码如下供参考:
DialogBarEx.h
class CDialogBarEx : public CDialogBar
{
DECLARE_DYNAMIC(CDialogBarEx)
public:
CDialogBarEx();
virtual ~CDialogBarEx();
virtual void DoPaint(CDC* pDC);【添加这句】
protected:
DECLARE_MESSAGE_MAP()
};
DialogBarEx.cpp
void CDialogBarEx::DoPaint(CDC* pDC)
{
CRect rc;
GetClientRect(&rc);
CBrush br(RGB(255, 0, 0));
pDC->FillRect(rc, &br);
}
补充:软件开发 , Vc ,