Автор
|
Тема: CMyToolBar расположить СПРАВА от СToolBar.
|
zenon |
опубликован 10-04-2001 04:36 MSK
Может кто-нибудь сталкивался с необходимостью разместить второй ToolBar РЯДОМ с первым.Т.е. CMyToolBar должен располагаться справа от CToolBar, а не под ним. Пробовал FloatControlBar, но мойбар при этом висит в нужном месте, но отдельной панелькой.
|
Kosha
|
опубликован 10-04-2001 14:44 MSK
в MSDNовском примере DLGBARS есть Оччень клевая функция. В немного обобщенном варианте - получите ;-) //------------ void C%КЛАСС-ГДЕ-ТЫ-ЕГО-СОЗДАЕШЬ(CmainFrame ИЛИ ЧТО-ТО ПОХОЖЕЕ::DockControlBarLeftOf(CControlBar * Bar, CControlBar * LeftOf) { CRect rect; DWORD dw; UINT n; // get MFC to adjust the dimensions of all docked ToolBars // so that GetWindowRect will be accurate RecalcLayout(); LeftOf->GetWindowRect(&rect); rect.OffsetRect(1,0); dw=LeftOf->GetBarStyle(); n = 0; n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP : n; n = (dw&CBRS_ALIGN_BOTTOM && n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n; n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT : n; n = (dw&CBRS_ALIGN_RIGHT && n==0) ? AFX_IDW_DOCKBAR_RIGHT : n; // When we take the default parameters on rect, DockControlBar will dock // each Toolbar on a seperate line. By calculating a rectangle, we in effect // are simulating a Toolbar being dragged to that location and docked. DockControlBar(Bar,n,&rect); } Вот и все. да, кстати, она докит не только один левее другого, но и один выше другого, если надо. |
Kosha
|
опубликован 10-04-2001 14:49 MSK
т.е. сначала делаешь DockControlBar(СВОЙ-ТУЛБАР), а потом DockControlBarLeftOf(стандартный-тулбар,СВОЙ-ТУЛБАР); |
zenon
|
опубликован 11-04-2001 05:50 MSK
Офигительнейшее спасибо,Kosha !!! |
zenon
|
опубликован 12-04-2001 04:51 MSK
P.S. Примерчик называется DOCKTOOL. MSDN: "DOCKTOOL: Demonstrates Dockable Toolbars" |
Kosha
|
опубликован 12-04-2001 14:50 MSK
Ну, обшибся немного. С кем не бывает! ;-)))))))))))))))))))) |