Форум: "Потрепаться";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
ВнизНесворачиваемое окно ! Найти похожие ветки
← →
psa247 © (2005-12-05 19:33) [0]Какие события, точнее - что происходит с окном приложения при запуске WindowsExplorerCommand - "Свернуть все окна". И как его победить ?
:)
Пробовал ловить WM_SYSCOMMAND и переопределил обработчик Application.OnMinimize - не реагирует. Как быть ..?
← →
Суслик © (2005-12-05 19:45) [1]точно не знаю (сразу говорю), но я бы перехватил все события (кроме wm_paint) и почитал про них справку в msdn.
← →
VirEx © (2005-12-05 19:46) [2]рабочий стол в windows это содержимое окна проводника - Explorer"а, поэтому все окна которые находятся в нём - подчиненные окна (моё предположение), эта команда является внутренней командой проводника, и проводник может либо послать всем окнам WM_SHOWWINDOW:
sendmessage(handle,WM_SHOWWINDOW,fShow,fnStatus);
fShow: true, false
fnStatus:
SW_OTHERUNZOOM Window is being uncovered because a maximize window was restored or minimized.
SW_OTHERZOOM Window is being covered by another window that has been maximized.
SW_PARENTCLOSING Window"s owner window is being minimized.
SW_PARENTOPENING Window"s owner window is being restored.
либо просто скрывает своё окно (дескриптор hDC)
(вот второй случай написал и задумался, скорей всего неправильно)
← →
umbra © (2005-12-05 20:00) [3]тут надо скорее работать с
WM_WINDOWPOSCHANGING
(окно его получает до изменения Z-order-а окна) илиWM_WINDOWPOSCHANGED
(окно получает это сообщение после изменения своего Z-order-а)
← →
psa247 © (2005-12-05 20:04) [4]Заметил такую особенность: как бы насильно сворачивается, т.к. после вызова этой команды - следом вызывал и SetForeGround и ShowWindow и Application.Restore - окно начинало прыгать (т.е. свернется-развернется)
← →
КаПиБаРа © (2005-12-06 06:20) [5]psa247 © (05.12.05 19:33)
И как его победить ?
program Project1;
uses
Forms, windows,
Unit1 in "Unit1.pas" {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.ShowMainForm := False;
ShowWindow(Application.Handle, SW_HIDE);
Application.Run;
end.
--------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Visible := True;
FormStyle := fsStayOnTop;
end;
end.
← →
Игорь Шевченко © (2005-12-06 10:43) [6]
> Какие события, точнее - что происходит с окном приложения
> при запуске WindowsExplorerCommand - "Свернуть все окна".
> И как его победить ?
Не издевайся над пользователем. WM_SYSCOMMAND не посылается, окно рабочего стола помещается на передний план.
← →
КаПиБаРа © (2005-12-06 10:49) [7]Игорь Шевченко © (06.12.05 10:43) [6]
Это точно. Скрывается даже полностью "зависшее" окно приложения, которое не обрабатывает вообще никаких сообщений.
← →
Чапаев © (2005-12-06 11:04) [8]А я бы руки ломал за приложение, которое не сворачивается, когда я жму "Свернуть ВСЕ".
← →
Думкин © (2005-12-06 11:07) [9]> Чапаев © (06.12.05 11:04) [8]
Бедный Эксплорер.
← →
КаПиБаРа © (2005-12-06 11:17) [10]Чапаев © (06.12.05 11:04) [8]
Например за приложение таймер, главная форма которого размером 20х50 пикселей, расположенна в координатах (х=центр экрана, у=0)
← →
Чапаев © (2005-12-06 12:03) [11]
> Например за приложение таймер, главная форма которого размером
> 20х50 пикселей, расположенна в координатах
Не знаю, не видел. А это главное. ;-)
← →
psa247 © (2005-12-11 18:14) [12]
WM_WINDOWPOSCHANGING
WPARAM wParam
LPARAM lParam;
Parameters
wParam
This parameter is not used.
lParam
Pointer to a WINDOWPOS structure that contains information about the window"s new size and position.
Return Value
If an application processes this message, it should return zero.
Подскажите, как это выполнить ?
If an application processes this message, it should return zero.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2006.01.01;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.012 c