Re[2]: Про CDialogBar
От: edikk www.ed.kaliningrad.ru
Дата: 21.01.02 14:15
Оценка:
Здравствуйте 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 окна. Это как то решается?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.