Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизПоймать событие сворачивания/разворачивания окна Найти похожие ветки
← →
Creep1 (2005-07-21 21:33) [0]Здраствуйте мастера.
Помогите пожалуйста обработать клик по кнопке сворачивание/разворачивание окна.
← →
begin...end © (2005-07-21 21:36) [1]WM_SYSCOMMAND
← →
Creep1 (2005-07-21 21:47) [2]Пожалуйста чуть по подробней, а то я не въезжаю.
← →
begin...end © (2005-07-21 21:54) [3]> Creep1 (21.07.05 21:47) [2]
ОК. Но сначала ответьте на несколько уточняющих вопросов:
1. Нужно перехватить именно КЛИК НА КНОПКЕ "Свернуть", или нужно просто ОТЛОВИТЬ СОБЫТИЕ свёртывания окна? Это я к тому, что окно может быть свёрнуто и без нажатия на кнопку "Свернуть" -- например, выбором соответствующего пункта в системном меню.
2. Речь идёт об окне (которое создано Вами на API) или о форме?
← →
Creep1 (2005-07-21 22:05) [4]Мене нужно что когда пользователь кликал на свернуть/развернуть,
запускалась моя процедура.
Например когда форма создается есть событие onCreate,
вот мне надо тоже только с сверуть/развернуть.
Я конечно фигово выразился :) ну надеюсь что хоть чучуть понятно.
← →
begin...end © (2005-07-21 22:15) [5]> Creep1 (21.07.05 22:05) [4]
Единственное, что я понял -- речь идёт всё же о форме.
Вот пример для сворачивания:type
TForm1 = class(TForm)
private
procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;
...
end;
procedure TForm1.WMSysCommand(var Message: TMessage);
begin
if Message.WParam and $FFF0 = SC_MINIMIZE then
// Если неважно, ЧТО вызвало сворачивание окна -- нажатие кнопки
// "Свернуть" или что-либо другое, то следующую строку нужно убрать
if SendMessage(Handle, WM_NCHITTEST, 0, Message.LParam) = HTMINBUTTON then
// Тут -- код по обработке события
inherited
end
Для разворачивания -- то же самое, только с SC_MAXIMIZE и HTMAXBUTTON.
← →
Creep1 (2005-07-21 22:34) [6]Большое спасибо! вроде все работает.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c