关于CDialogBar的使用

CDialogBar 的用途和CDialog差不多,但是它是派生于CControlBar,不是派生于CDialog 。所以有点陌生。

 

CDialogBar 的初始化:

 1.先从CDialogBar派生一个新的类 比如CMyDialogBar

 2.然后在CMainFrame类中,创建一个CMyDialogBar 对象。

 3.在OnCreate中,添加m_dialogbar.Create(this //父窗口指针

,IDD_DIALOG1, //资源

CBRS_LEFT|CBRS_TOOLTIPS|CBRS_FLYBY, //风格

122) //ID号,随便指定了

 4.然后调用 m_dialogbar.EnableDocking(CBRS_ALIGN_ANY) 和DockControlBar(&m_dialogbar) 允许被停靠

以上是CDialog的初始化

 

CDialogBar 命令响应

你可以在派生的CMyDialogBar中,设置相应的消息响应函数

比如你想设置工具条的背景,就可以在WM_PAINT的OnPaint函数中,用GDI技术来实现

想要设置每个控件的具体颜色的话,还可以在 OnCtlColor函数中,设置代码

 

HBRUSH CYXdialogbar::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialogBar::OnCtlColor(pDC, pWnd, nCtlColor);
    if(pWnd->GetDlgCtrlID()==IDC_SHOW)
    {
        pDC->SetBkColor(RGB(255,255,0));
        //return CBrush(RGB(255,255,0));
    }
    return hbr;
}

 

这样就可以设置控件IDC_SHOW的颜色了

而不是在CMainFrame类中 调用OnCtlColor来更改DIALOGBAR中的颜色

 

 

如果 在DIALOGBAR中有一个BUTTON要响应 的话

就可以在CMYDIALOGBAR这个派生于CDIALOGBAR的类中,定义afx_msg函数,来进行消息的处理

void CMydialogbar::OnBnClickedButton1()
{
    MessageBox("good");
}

但是由于没有设置相应的更新函数,所以按钮即使设置了处理函数后,还是灰的

所以要手动添加 按钮的 ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton)

就是在 .h中添加处理函数

afx_msg void OnUpdateButton(CCmdUI *pCmdUI);

在.cpp中添加 ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton)

以及实现消息处理函数

void CYXdialogbar::OnUpdateButton(CCmdUI *pCmdUI)
{
    pCmdUI->Enable(TRUE);
}

 

以上

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值