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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值