BOOL CMainFrame::InitObjects() {
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED, CRect(0, 0, 0, 0)/*, IDC_MISC*/)|!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) {
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
// TODO: Remove this if you don't want tool tips or a resizeable toolbar
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED | CBRS_FLOAT_MULTI);
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
DockControlBar(&m_wndToolBar, AFX_IDW_DOCKBAR_TOP);
m_wndToolBar.SetButtonStyle (m_wndToolBar.CommandToIndex(IDM_FILTER), TBBS_CHECKBOX);
m_wndToolBar.GetToolBarCtrl().CheckButton(m_wndToolBar.CommandToIndex(IDM_FILTER), FALSE);
VERIFY(m_pToolBar->SubclassWindow(m_wndToolBar.m_hWnd));*/
m_pCBClient = new CTrueCB;
CRect rc, rc1;
UINT ui = m_wndToolBar.CommandToIndex(ID_CBOX);
UINT ui1= m_wndToolBar.CommandToIndex(ID_CBOX1);
m_wndToolBar.GetItemRect(ui, rc);
m_wndToolBar.GetItemRect(ui1, rc1);
rc.bottom= rc.top + rc.Height()*16;
rc.right = rc1.right;
VERIFY(m_pCBClient->Create(CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_VSCROLL, rc, &m_wndToolBar, ID_CBOX));
m_pCBClient->EnableWindow(FALSE);
m_wndToolBar.ShowWindow(SW_SHOW);
//HERE IS NEW CODE
m_wndTabsBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER |
CBRS_TOOLTIPS | CBRS_FLOAT_MULTI | CBRS_FLYBY | CBRS_SIZE_FIXED, CRect(0, 0, 0, 0));
m_wndTabsBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED | CBRS_FLOAT_MULTI);
m_wndTabsBar.LoadToolBar(IDS_TABSBAR);
m_wndTabsBar.EnableDocking(CBRS_ALIGN_BOTTOM);
DockControlBar(&m_wndTabsBar, AFX_IDW_DOCKBAR_BOTTOM);
m_wndTabsBar.ShowWindow(SW_SHOW);
m_wndToolBar.SetWindowText("Панель инструментов");
m_wndToolBar.SetWindowText("Экраны");
//END OF NEW CODE
LoadBarState("BarsState");
return TRUE;
}
---
m_wndToolBar и m_wndTabsBar определены как CToolBar.
До того как добавили новый код с m_wndTabsBar все было хорошо. После добавления нового тулбара началась проблема - верхний тулбар (m_wndToolBar) после загрузки из LoadBarState переносится в низ экрана.
Записи реестра прикладываю. old.reg - это ключи реестра до добавления m_wndTabsBar. new.reg - после добавления. Что написано в реестре я сам не понимаю, но чувствуется, что оба тулбара имеют один идентификатор (0xe800, если это он в реестре). Подскажите пожалуйста что-нибудь.
old.reg new.reg
|