OberonCore https://forum.oberoncore.ru/ |
|
Пропадает MINIMIZEBOX в неакт. доч-м окне ББ. Как отключить? https://forum.oberoncore.ru/viewtopic.php?f=24&t=3224 |
Страница 1 из 1 |
Автор: | Андрей [ Воскресенье, 30 Январь, 2011 22:29 ] |
Заголовок сообщения: | Пропадает MINIMIZEBOX в неакт. доч-м окне ББ. Как отключить? |
У дочернего окна (окна документа) внутри BB пропадают кнопки закрытия, минимизации и т.д., когда окно теряет фокус. Это страшно неудобно, так как для закрытия дочернего окна без фокуса приходится сначала его активизировать. Вопрос к знатокам внутренностей ББ: правильно ли я понял, что нужно смотреть в HostWindows, PROCEDURE CreateDoc? Вопрос к знатокам WinAPI - куда смотреть, чтобы это исправить? |
Автор: | Александр Ильин [ Воскресенье, 30 Январь, 2011 22:53 ] |
Заголовок сообщения: | Re: Пропадает MINIMIZEBOX в неакт. доч-м окне ББ. Как отключ |
Правильно, CreateDoc, но самое главное - HostWindows.DocWinHandler: посмотрите, какие в ответ на сообщение USER32.WMNCActivate производятся манипуляции с переменной style. WinApi.WS_MINIMIZEBOX - кнопка сворачивания окна, WinApi.WS_MAXIMIZEBOX - кнопка разворачивания окна, WinApi.WS_SYSMENU - иконка с меню в левом верхнем углу окна И крестик для закрытия окна в правом верхнем углу. Возможно, что достаточно будет закомментировать строки st := st - {16, 17, 19}; (* minimize box, maximize box, sysmenu *) и style := style - {16, 17, 19} (* minimize box, maximize box, sysmenu *) |
Автор: | Андрей [ Воскресенье, 06 Февраль, 2011 01:01 ] |
Заголовок сообщения: | Re: Пропадает MINIMIZEBOX в неакт. доч-м окне ББ. Как отключ |
Спасибо, это работает! Кнопки теперь не исчезают. Но деактивированное окно не реагирует на нажатие кнопки закрытия! На сворачивание\разворачивание реагирует. А клик по кнопке закрытие - это просто активация окна. Всё равно что просто по заголовку кликнули. Причём, если окно стало неактивным из-за активизации другого документа - тогда кнопка закрытия не работает. А если окно стало неактивным из-за активизации диалога, то тогда кнопка закрытия у неактивного окна работает. Если неактивное окно в свернутом состоянии, то тоже работает. Ничего не понимаю... Трассировка последовательности сообщений при переходах в разные состояния приаттачена Вложение: Понятно, что WM_CLOSE просто не посылается или не доходит. Отличие всё же кажется в сообщении WM_MDIACTIVATE Есть идеи? <оффтоп: удалено модератором> |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |