多CMFCToolbar的生成及解决方案
在使用CMFCToolbar时,我们有时需要为不同的视图窗口生成多个不同的工具栏。但是,在生成多个工具栏时,我们会面临一些问题,例如显示多个相同的工具栏、多个工具栏数据的同步等等。下面,我将为大家介绍如何解决这些问题:
- 显示多个相同的工具栏
当我们用“AddToolBar()”函数添加工具栏时,函数会自动创建一个新的工具栏,但是它们可能会有相同的ID。这将导致多个工具栏在程序中显示相同的内容。
解决方案:
在创建每个工具栏时,需要分配不同的ID。可以使用“CMFCToolbar::GetUserImages()”方法获取全局唯一的ID,并将其作为新工具栏的ID。
例如:
// 创建第一个工具栏
m_wndToolBar1.Create(this, AFX_DEFAULT_TOOLBAR_STYLE, IDR_MAINFRAME);
m_wndToolBar1.LoadBitmap(IDR_TOOLBAR_IMAGES);
m_wndToolBar1.SetWindowText(_T(“ToolBar 1”));
m_wndToolBar1.SetBarStyle(m_wndToolBar1.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC |
CBRS_HIDE_INPLACE);</