对话栏(CDialogBar)

对话栏是工具栏和非模态对话框相结合的产物。MFC为对话栏提供了CDialogBar类,该类派生于CControlBar类。对话栏与对话框类似,包含标准的Windows控件,并且可以通过创建对话模板来表示对话栏。
一:对话栏主要方法
在这里插入图片描述
二:对话栏的应用实例
(l)创建一个基于单文档的应用程序。
打开VS2019——>新建——>项目
在这里插入图片描述
在这里插入图片描述
把项目设置为使用【多字符集】

(2):添加资源——>新建一个IDD_DIALOGBAR
在这里插入图片描述
(3):在DialogBar中添加控件
在这里插入图片描述
(4):使用类向导添加变量声明CDialogBar m_wndDialogBar
在这里插入图片描述
(5):在MainFrm.cpp文件的OnCreate函数中创建CDialogBar对象,代码如下:

if (!m_wndDialogBar.Create(this, IDD_DIALOGBAR, CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY, IDD_DIALOGBAR))
		TRACE0("未能创建DIALOGBAR\n");
		return -1;      // 未能创建

(6):使用类向导添加OnupdataButton方法:

void CMainFrame::OnupdataButton(CCmdUI* pCmdUI)
	// TODO: 在此处添加实现代码.
	pCmdUI->Enable(TRUE);

(7):添加消息映射激活DialogBar上的按钮

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	ON_UPDATE_COMMAND_UI(IDC_BUTTON1, OnupdataButton)
此文档基于能巴的CDialogBar的使用方法(https://www.cnblogs.com/mysunnyday/archive/2012/02/07/2341867.html)修改补充。 创建CDialogBar对话框主要分为如下几个步骤: 一、创建对话框资源; 二、为对话框添加新的派生类; 三、修改派生类; 四、修改初始化函数; 五、在框架类中实现派生类的对象化。 下面我将根...  今天编程过程中,涉及到了CDialogBar的编程,在网上看了一些资料,虽然看明白了,但是写的不是很透明,如果对于一个初学者来说,肯定会头疼,下面,我在这里详细的介绍一下这方面的知识,以及怎样编程。        在CDialogBar编程之前,我们首先要明确一点,CDialogBar是CControlBar派生出来的,而CControlBar又是从CWnd派生出来的,所以CDialogBa http://support.microsoft.com/default.aspx?scid=kb;en-us;143255说明:翻译时忽略了在MFC4.0以前版本中的所采用的方法。[问题叙述]:MFC实现的CDialogBar在Floating状态的时候是不允许改变大小的。如果Dialog Bar包含有需要动态改变大小的控件,我们就可以使用下面介绍的方法来改变Dialog Bar的大小。 一个朋友让我看一个关于DialogBar的程序,问题是在一个DialogBar中添加一个Tree Control控件,在初始化函数OnInitDialog中使用InsertItem添加一项,结果运行后,始终在DialogBar中显示不出来,后来我又加入了一个Button测试,结果Button是灰色的,根本不能点击。在OnInitDialog中加入断点,程序根本执行不到这个函数。按理说,界面已经显示 Dialog Bar类似一个静态的附在框架窗口上的对话框,由于Dialog Bar可以使用资源编辑器进行编辑所以使用起来就很方便,在设计时就可以对Dialog Bar上的子窗口进行定位。用于显示一些提示字符。MFC中使用CDialogBar类来Dialog Bar控件的各种操作。通过调用 BOOL Create( CWnd* pParentWnd, UINT nIDTemplate, UINT n...