powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Какие события происходят при минимизации формы?
4 сообщений из 4, страница 1 из 1
Какие события происходят при минимизации формы?
    #32056341
applea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сколько смотрел- не нашел пока у класса TForm стандартных событий, связанных с нажатием системных кнопок вверху справа- минимизации, максимизации- может кто подскажет?
...
Рейтинг: 0 / 0
Какие события происходят при минимизации формы?
    #32056375
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Перехвати WM_SHOWWINDOW и проверяй в нём параметры сообщения.
...
Рейтинг: 0 / 0
Какие события происходят при минимизации формы?
    #32059649
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При любом изменении размеров окна создается сообщение WM_WINDOWPOSCHANGING. Его и надо обрабатывать, если интересно могу показать как я обрабатывал его в C++ Builder'е когда писал прогу с интерфейсом как у самого билдера
...
Рейтинг: 0 / 0
Какие события происходят при минимизации формы?
    #32061603
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим нужен ГУИ как у Билдера(Дельфей), то есть с одной стороны вроде как МДИ а с другой не совсем. Ну вот что я делаю:
1)Как заставить главную форму быть в виде панельки уж сами думайте.
2)А вот дочерние формы стиль оставляю по умолчанию
FormStyle = fsNormal;
и обрабатываю WM_WINDOWPOSCHANGING следующим образом:
в хидере -
Код: plaintext
1.
2.
3.
4.
5.
6.
public:		// User declarations
    void __fastcall WMPosChanging(TWMWindowPosMsg&);
protected:
    BEGIN_MESSAGE_MAP
        VCL_MESSAGE_HANDLER(WM_WINDOWPOSCHANGING, TWMWindowPosMsg, WMPosChanging)
    END_MESSAGE_MAP(TForm)

а в коде -
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
void __fastcall TfrmAdmin::WMPosChanging(TWMWindowPosMsg &Mes)
{
    //TODO: Add your source code here
bool Maximized = false;
Maximized = (Mes.WindowPos->x == - 4 )&(Mes.WindowPos->y == - 4 );
Maximized = Maximized&(Mes.WindowPos->cx == Screen->Width +  8 );
Maximized = Maximized&(Mes.WindowPos->cy == Screen->Height +  8 );
if(Maximized)
    {
    Mes.WindowPos->y  = dynamic_cast<TForm*>(this->Owner)->Top + dynamic_cast<TForm*>(this->Owner)->Height;
    Mes.WindowPos->cx = Screen->Width +  4 ;
    Mes.WindowPos->cy -= dynamic_cast<TForm*>(this->Owner)->Height +  8 ;
    }
}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Какие события происходят при минимизации формы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]