Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ToolBar в VC  (Прочитано 6622 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Alex White
Участник

ua
Offline Offline
Пол: Мужской

« : 10-12-2003 14:16 » 

Есть такая зядача: надо по команде меню спрятать/показать тулбар. Замечен такой прикол. Если в меню есть команда ID_VIEW_TOOLBAR, то по умолчанию она показывает/прячет тот тулбар, который в OnCreate() был создан первым Улыбаюсь А если у меня 2 или больше тулбаров? И где вообще этот обработчик спрятан ? в общем надо написать тоже самое, только нормально и для каждого тулбара.
Я попробовал его просто прятать используя SW_HIDE и SW_SHOW. Пока что одна проблема - если закрыть тулбар (на крестик:), то потом его уже никак не достать. Что делать ?
Записан
Sevas
Гость
« Ответ #1 : 10-12-2003 14:36 » 

Функция
void CFrameWnd::ShowControlBar( CControlBar* pBar, BOOL bShow, BOOL bDelay );
Используй эту функцию по командам меню как тебе надо.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 10-12-2003 14:42 » 

Отвечаю:

1. Это зарезервированная MFC комманда (ID) для MainFarme:

работает действительно для тулбара, который указан здесь
if (!m_wndToolBar.CreateEx(...) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))

2. При закрытии "на крестик" необходимо, оповестить меню об этом. Можно например добавить в класс флажки. И их устанавливать.

Для своих делай так:
Каждый тулбар получает свой ID-ресурс еще в редакторе ресурсов.
Потом в MainFrame создаёшь объекты на каждый тулбар по одному.
Потом делаешь столько пунктов меню сколько у тебя тулбаров.
И вставляешь функции обработки. И в каждом делаешь SW_HIDE и SW_SHOW.
Тебе ещё придётся сделать запоминание состояния и координат. А если ещё и сделаешь запись в регистр, то получится самые настоящие тулбары.

Поэтому, если собираешься в дальнейшем это часто использовать, лучше сделать свой класс и от него "плодить детей".
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Alex White
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #3 : 10-12-2003 14:58 » 

Я тут посмотрел как это реализовано в CFrameWnd, там есть обработчики ID_VIEW_TOOLBAR.
в общем разобрался, спасибо. ShowControlBar - то, что доктор прописал Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines