Два одновременно активных окна
От: delphinchik Россия  
Дата: 22.04.05 07:51
Оценка:
Главная форма BorderStyle = bsNone. Сделал выезжающее сверху меню по кнопке на главной форме. Меню реализовано в виде отдельной формы (BorderStyle = bsSingle) которая содержит только компонент TMainMenu. То есть при нажатии на кнопку сверху главной формы появляется для пользователя как бы такая себе надстройка с главным меню программы. Перемещение двух форм сразу при перемещении одной из них реализовал, это несложно, достаточно перехватить сообщение WM_MOVING на обоих формах. Также сделал чтобы при работе с системными кнопками в форме меню действия применялись ко всему приложению (то есть минимизация и закрытие) — тут перехватил сообщение WM_SYSCOMMAND. Вот только есть одна "некрасивость". Если отображается форма меню и при этом пользователь работает с главной формой, то меню становится неактивным, это и понятно в общем то потому как в данный момент активна главная форма, но в этом случае возникает ощущение того, что приложение в целом неактивно. Как сделать так, чтобы при работе с главной формой, верхняя, встроенная форма с меню тоже была активна. Я попытался перехватить у главной формы сообщение WM_ACTIVATE и отправлять это же сообщение форме с меню, но получается что при любой активности на главной форме фокус сразу переводится на верхнюю форму, а нужно добиться только "активного цвета" ее заголовка но не фокуса. Буду благодарен за советы. Спасибо.

Вот примерно то что получается когда активна главная форма:
http://www.rsdn.ru:80/File/34064/menu.JPG
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.