| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |