Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

Но не могу поймать момент когда форма уже минимизирована   Найти похожие ветки 

 
Delphi5.01 ©   (2004-12-15 15:11) [0]

Проблема заключается в том что я не могу поймать момент деактивизации формы.
Получается только если использую следующий код:
 if (Msg.message<>45057)and(Msg.wParam=1)and(Msg.lParam=0) then
   Application.Minimize;
Но не могу поймать момент когда форма уже минимизирована. Что бы сделать скриншот экрана.


 
DVM ©   (2004-12-15 15:53) [1]

WM_WINDOWPOSCHANGED, WM_MOVE, WM_SIZE


 
Delphi5.01 ©   (2004-12-15 16:10) [2]

Я ни совсем хорошо понял что подразумевается под вашим ответом, я понял что с помощью WM_WINDOWPOSCHANGED происходит минимизация программы. Но чему равны в данный момент: lparam и wparam?
И вы уверены что это сообщение возникает после того как форма уже минимизирована или этот процесс идентичен Application.OnMinimize?
Я попытался использовать Application.OnRestore но результат плачевный, он не подходит по той причине что он возникает уже после востановленя формы.


 
DVM ©   (2004-12-15 16:21) [3]


> я понял что с помощью WM_WINDOWPOSCHANGED происходит минимизация
> программы.

Все эти три сообщения - уведомления, они присылаются окну при изменении его положения и размеров. И при минимизации они присылаются.

> И вы уверены что это сообщение возникает после того как
> форма уже минимизирована или этот процесс идентичен Application.OnMinimize?

После. Насчет идентичности смотреть VCL надо не знаю.

> Я попытался использовать Application.OnRestore но результат
> плачевный, он не подходит по той причине что он возникает
> уже после востановленя формы.

И правильно что после. Так и должно быть.

Еще WM_GETMINMAXINFO точно приходит окну в момент перед восстановлением.


 
DVM ©   (2004-12-15 16:22) [4]

А вообще есть такой хороший инструмент SPY++ c его помощью можно посмотреть какие сообщения и когда приходят окну.


 
Delphi5.01 ©   (2004-12-15 21:30) [5]

A gde mojno dostat dannuiu utilitu? Esli ne slojno skinte url ochen budu blagodaren! :-)


 
Delphi5.01 ©   (2004-12-16 09:43) [6]

Не сочтите за наглость или лень, но мне не совсем понятно как можно использовать константу WM_GETMINMAXINFO для определения момента восстановления окна? Понятно что надо отлавливать сообщения Application.OnMessage но как быть дальше? Может надо сравнить значение переменной Msg.Message со значением WM_GETMINMAXINFO?
Спасибо за помощь


 
DVM ©   (2004-12-16 10:11) [7]


> Esli ne slojno skinte url ochen budu blagodaren! :-)

www.microsoft.com :) Она входит в состав MS Visual C++ 6

> Не сочтите за наглость или лень, но мне не совсем понятно
> как можно использовать константу WM_GETMINMAXINFO для определения
> момента восстановления окна?

Имеется ввиду "как обрабатывать сообщение Windows для которого не сопоставлено событие Delphi?"
http://www.inet-life.net/delphi/sobit.html
Начиная с "Обработка сообщений Windows в Delphi"


 
Delphi5.01 ©   (2004-12-16 13:36) [8]

Dokumentacia deistvitelno super, no vot soobshenie WM_GETMINMAXINFO ne voznikaet pered RESTORE-om. Toje samoe mogu skazat pro WM_WINDOWPOSCHANGED.
Ili ia chtoto ne pravilno delau?
...
procedure FormRestore(var Msg: TMessage); message WM_GETMINMAXINFO;
...
procedure TForm1.FormRestore;
begin
 if ScreenBitMap<>nil then
   PrintScreen(ScreenBitMap);
 inherited;    
end;

Spasibo za pomosh


 
Delphi5.01 ©   (2004-12-16 15:20) [9]

Вот неожиданно пришла такая мысль, а что если сделать две формы. Одну засунуть в трей и ее использовать в целях восстановления и минимизации главной формы. В этом случае я смогу сам отлавливать момент восстановления, потому что я же буду давать команды show, hide?
Что вы думаете?


 
Delphi5.01 ©   (2004-12-16 16:19) [10]

Vso zarabotalo! kak ia i govoril prosto rpogramu minimiziroval v tray, a v etom sluchae ia kontorliroval situaciu :-)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.036 c
1-1106259842
Bobby Digital
2005-01-21 01:24
2005.02.06
StringGird pt2


1-1106400828
blinch
2005-01-22 16:33
2005.02.06
Графы... матрицы... циклы...


1-1105772482
Александр1
2005-01-15 10:01
2005.02.06
Работа с Word


1-1106648348
Aleks
2005-01-25 13:19
2005.02.06
Как перехватить ошибку


14-1106131945
Гость
2005-01-19 13:52
2005.02.06
Ошибка DELPHI





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский