当前位置:编程学习 > VC++ >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,