Splitter + ToolBar
От: mars  
Дата: 03.04.02 19:36
Оценка:
Народ, подскажите, как лучше создать тулбар в одном оз окон, получившемся при разбиении главного окошка sdi-проги сплиттером? Нужно ли использовать для этого окна с тулбаром CFrameWnd или можно как-то проще?
Re: Splitter + ToolBar
От: Аноним  
Дата: 04.04.02 04:46
Оценка:
Здравствуйте mars, Вы писали:

M>Народ, подскажите, как лучше создать тулбар в одном оз окон, получившемся при разбиении главного окошка sdi-проги сплиттером? Нужно ли использовать для этого окна с тулбаром CFrameWnd или можно как-то проще?


Не думаю чот это будет просто сделать. В MFC сплитерные окна очень сильно завязаны на CView, а в CView разместиь Toolbar проблематично т.к. Toolbars сильно привязаны к CFrameWnd, а разместить CFrameWnd внутри сплитера вряд ли удасться.
Кроме того не думаю,что это хороший стиль UI — размещать toolbar в сплитерном окне.
Если это очень нужно то проще это написать на WinAPI.
Re[2]: Splitter + ToolBar
От: mars  
Дата: 04.04.02 06:12
Оценка:
А>Не думаю чот это будет просто сделать. В MFC сплитерные окна очень сильно завязаны на CView, а в CView разместиь Toolbar проблематично т.к. Toolbars сильно привязаны к CFrameWnd, а разместить CFrameWnd внутри сплитера вряд ли удасться.
А>Кроме того не думаю,что это хороший стиль UI — размещать toolbar в сплитерном окне.
А> Если это очень нужно то проще это написать на WinAPI.

Не сомневаюсь, что это не намного сложнее,чем прикрутить обычный тулбар. Просто, сам еще этого не делал и не допер пока. Видимо, есть какие-то хитрости.

А насчет стиля — это ты зря. Намного грамотней динамически управлять элементами программы. Нечего занимать рабочее пространство тем, что не используется. Хотя, все зависит от конкретного случая...
Re[3]: Splitter + ToolBar
От: mars  
Дата: 04.04.02 09:45
Оценка:
Похоже, перевелись отцы visual c++ на этом свете...
:maniac:
Re: Splitter + ToolBar
От: Аноним  
Дата: 04.04.02 11:12
Оценка:
Здравствуйте mars, Вы писали:

Сделать то конечно можно но возни много.
Чтобы в СView впихноуть тулбар надо скорее всего использовать не CToolBar, а CToolBarCtrl. Просто вызываеш Create и указываеш CView родителем. А потом боюсь, что прийдется все кнопочки вручную добавлять, Wisard не поможет. И обработчики событий прийдется в самом тулбаре обрабатывать ( в унаследованном классе) , как стандартный он работать не будет.
Re[2]: Splitter + ToolBar
От: Аноним  
Дата: 04.04.02 12:13
Оценка:
Я тут продолжил предыдущую мысль, и самому стало интересно как это будет выглядеть.

Привожу корявый кусок кода который сейчас настучал.
Прикрепляет тулбар к CView (или к любому типу окна).
//m_tb — типа CToolBarCtrl
void CMyView::CreateToolbar()
{
m_tb.Create(WS_CHILD,CRect(10,10,100,100),this,1);
//IDB_BITMAP — какой нибудь BITMAP ресурс
m_tb.AddBitmap(1,IDB_BITMAP1);
//добавляем одну кнопку
TBBUTTON bt;
bt.iBitmap=1;
bt.fsStyle=TBSTYLE_BUTTON;
bt.fsState=TBSTATE_ENABLED;
//ID_SOME_COMMAND -команда обработчик которой
//есть в CMyView
bt.idCommand=ID_SOME_COMMAND;
m_tb.InsertButton(0,&bt);

m_tb.ShowWindow(SW_SHOW);
}
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
if(m_tb.m_hWnd!=0) m_tb.AutoSize();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.