Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Изврат c ToolBat - при спрятанном фрейме (SW_HIDE)


Автор: blackEye 27.4.2007, 23:57
Доброго времени суток, уважаемые форумчане.
Поискал по форуму и не нашел ответа на мой вопрос. Может кто салкивался?

Прячу фрейм :
ShowWindow(SW_HIDE);
FloatControlBar(&m_wndToolBar);

Как только нажимаю на другое окно - тулбар теряется и виден только если последовательно все окна свернуть, а переключиться на него по альт+таб не возможно и топмост он не делается,
а если его закрыть то программа не завершается.
Смотрел spy сообщения при закрытии бара. ничего интересного.
В визарде перепробовал большинство событий на баре для закрытия его - ни одно не вызывается

Интересует:
1. как переключаться на тулбар по альт+таб либо как сделать его топмост.
2. как завершить программу по закрытии тулбара при спрятанном фрейме.

Автор: Earnest 28.4.2007, 19:46
Плавающий тулбар сидит в MiniDockFrameWnd, которое имеет стиль TOOLWINDOW (кажется именно это мешает ему переключаться по Alt-tab) и обрабатывает CLOSE именно так.
Тебе надо подменить класс фрейма на свой, в котором определить нужное поведение.
Подменить класс можно так: просто установить переменную m_pFloatingFrameClass главного окна (если у тебя FrameWnd или наследник). Это можно сделать в OnCreate фрейма или позже, но главное - ДО создания тулбара.
Насчет подмены поведения: 
- переопредели обработку WM_CLOSE так как тебе надо
- поэкспериментируй со стилями: например, убери WS_EX_TOOLWINDOW 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)