Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.23;
Скачать: CL | DM;

Вниз

Поймать минимизацию окна.   Найти похожие ветки 

 
OnMinimize   (2007-06-06 13:08) [0]

Как поймать момент минимизации окна?

Если она осуществляется через WM_SYSCOMMAND + SC_MINIMIZE, то всё понятно.
А если, например, через ShowWindow или SetWindowPlacement ?
Кто нибудь знает простой способ?


 
DVM ©   (2007-06-06 13:12) [1]


> Кто нибудь знает простой способ?

Чужого окна или своего?


 
OnMinimize   (2007-06-06 13:22) [2]

Окно своё.
А гасят его со стороны (например, через иконку Show Desktop на Taskbar"е).


 
DVM ©   (2007-06-06 13:28) [3]

Раз свое, то вот и лови WM_WINDOWPOSCHANGING и иже с ним сообщения.

P.S. иконку Show Desktop двигает десктоп наверх


 
OnMinimize   (2007-06-06 13:31) [4]

Точно, про WM_WINDOWPOSCHANGING протупил!!!
Поленился подольше в MSDN"е порыться.
Спасибо.


 
OnMinimize   (2007-06-06 14:50) [5]

Тогда, правда, возникает другой вопрос: как поймать нажатие Show Desktop?
Ни WM_WINDOWPOSCHANGING, ни WM_SIZE не возникают.
Так понимаю, здесь работает или Shell.MinimizeAll(), или IShellDispatch4.ToggleDesktop().
Можно ли как-то поймать соответствующие Shell notifications? И вообще, существуют ли они?


 
clickmaker ©   (2007-06-06 15:21) [6]

а WM_WINDOWPOSCHANGED ?


 
OnMinimize   (2007-06-06 16:00) [7]


> clickmaker ©   (06.06.07 15:21) [6]
> а WM_WINDOWPOSCHANGED ?


Нет.


 
DVM ©   (2007-06-06 16:10) [8]


> OnMinimize   (06.06.07 14:50) [5]
> Тогда, правда, возникает другой вопрос: как поймать нажатие
> Show Desktop?
> Ни WM_WINDOWPOSCHANGING, ни WM_SIZE не возникают.

Возникают


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;

type
 TForm1 = class(TForm)
 private
   { Private declarations }
   procedure PosChanging( var Mess : TMessage ); message WM_WINDOWPOSCHANGING;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PosChanging( var Mess : TMessage );
begin
 WINDOWS.Beep(500,50);
end;

end.


 
clickmaker ©   (2007-06-06 16:14) [9]

запусти трассировщик сообщений в spy++ или winsigth да посмотри, что окну сваливается, когда десктоп раскрываешь


 
OnMinimize   (2007-06-06 16:32) [10]

:-) Ситуация немного хитрее.
Программа не использует VCL (i.e., WinAPI).
У основного окна удален ToolBar button через  SetWindowLong(Main_HWND, GWL_HWNDPARENT, CreateWindowEx(WS_EX_TOOLWINDOW, ...
И вот в этом случае при Show Desktop WM-сообщения не возникают...

Всем спасибо. Теперь ясно куда копать (toolwindow).


 
DVM ©   (2007-06-06 16:41) [11]


> OnMinimize  

У тебя не получится оставить свое окно на экране, кода происходит показ рабочего стола. И обработкой сообщений приходящих к окну тут не обойдешься. Дело в том, что скрываются окна даже зависших приложений.


 
OnMinimize   (2007-06-06 17:25) [12]

Ну "на нэт и суда нэт". :-)
Его можно попытаться переоткрыть.
Ладно, "будем посмотреть"...
Спасибо. :-)



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

Текущий архив: 2007.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
4-1181120911
OnMinimize
2007-06-06 13:08
2007.12.23
Поймать минимизацию окна.


15-1193445356
Живописец
2007-10-27 04:35
2007.12.23
У кого нибудь есть пример реализации рисования кистью на битмэпе?


2-1196340674
webpauk
2007-11-29 15:51
2007.12.23
сохранение файлов


15-1195736888
Denis__
2007-11-22 16:08
2007.12.23
Лукьяненко


15-1195558165
Vlad Oshin
2007-11-20 14:29
2007.12.23
Таскать объект по странице.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский