Здравствуйте Sasparella, Вы писали:
S>Здравствуйте edikk, Вы писали:
E>>Есть три созданных DialogBar-а, и при запуски MDI приложения они открываются. Но, они небольшие по размеру, и хотелось бы их расположить в ряд верткально в левой части окна (пример фотошоп, в правой части окна в ряд вертикально по умолчанию). А по умолчанию в той же левой части окна они распологаются горизонтально. Как сделать так как хочется?
S>Еще вот — мож пригодится...
S>S>void CMainFrame::DockControlBarLeftOf(CControlBar* Bar,CControlBar* LeftOf)
S>{
S> CRect rect;
S> DWORD dw;
S> UINT n;
S> // get MFC to adjust the dimensions of all docked ToolBars
S> // so that GetWindowRect will be accurate
S> RecalcLayout();
S> LeftOf->GetWindowRect(&rect);
S> rect.OffsetRect(1,0);
S> dw=LeftOf->GetBarStyle();
S> n = 0;
S> n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP : n;
S> n = (dw&CBRS_ALIGN_BOTTOM && n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n;
S> n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT : n;
S> n = (dw&CBRS_ALIGN_RIGHT && n==0) ? AFX_IDW_DOCKBAR_RIGHT : n;
S> // When we take the default parameters on rect, DockControlBar will dock
S> // each Toolbar on a seperate line. By calculating a rectangle, we in effect
S> // are simulating a Toolbar being dragged to that location and docked.
S> DockControlBar(Bar,n,&rect);
S>}
S>
Спасибо, это работает. Но, к примеру есть 3 таких окна, они расположилисб как надо — вертикально. Потом закрывается 2 и 3 окно. И открывается 3 окно, получается дыра вместо 2 окна. Это как то решается?