Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как не дать окну свернуться [D6, WinME]


?Feuerraeder ©   (2002-07-02 04:42:00) 

Как не допустить сворачивания окна, даже горячими клавами WINDOWS? Ловить SC_MINIMIZE? КаК?


слон   (2002-07-03 14:06:00) [1]

2Feuerraeder
>> слон, ты пробовал другими способами, оно вообще не
>> сворачивается?

Не сворачивается

>> есть ли другие способы?

Есть к примеру от Алмаза




Almaz   (2002-07-03 01:09:00) [2]


> Feuerraeder © (02.07.02 16:05)
> наша тема зашла в тупик?

См. http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1025556086&n=2там есть мой ответ на твой вопрос.

Удачи.


ggrisha   (2002-07-02 17:07:00) [3]

Включи ActiveDesktop и вставь html-ку с кнопкой.


Feuerraeder   (2002-07-02 16:05:00) [4]

наша тема зашла в тупик?


Игорь Шевченко   (2002-07-02 15:54:00) [5]

Pat © (02.07.02 15:11)

> Так для пользователей и стараемся :-))

Бедные пользователи...Один для них супер-пупер MDI изобретает, другие кнопки на десктопе рисуют, третьи окна несворачиваемые делают...

"Ослик, ослик, что с тобой мичуринцы сделали..." (с)

Рекомендую всем любителям странного почитать статьи на сайте
http://www.usability.ru



Pat   (2002-07-02 15:34:00) [6]

>Feuerraeder © (02.07.02 15:27)
Так и мне надо :-))) Давно бы уж проверил...Окно не получает сообщения о сворачивании, т.е. не сворачивается :-\ Как раз в этом и проблема....


Feuerraeder   (2002-07-02 15:27:00) [7]

мне очень надо! а совет слона работает?


Pat   (2002-07-02 15:11:00) [8]

>В корзину надо отправлять программы с несворачиваемым окнами. >Хоть бы пользователей пожалели...
Так для пользователей и стараемся :-)) Идея прогаммы взята из аналога - DescButtons. Создается окно, содержащее одну кнопку, помещается вниз

SetWindowPos(Handle,HWND_BOTTOM,Left,Top,width,height, SWP_SHOWWINDOW)

Короче, "кнопка на рабочем столе". Вот и не хочется, чтобы кнопки "улетали" при Ctrl+D


Pat   (2002-07-02 15:11:00) [9]

>В корзину надо отправлять программы с несворачиваемым окнами. >Хоть бы пользователей пожалели...
Так для пользователей и стараемся :-)) Идея прогаммы взята из аналога - DescButtons. Создается окно, содержащее одну кнопку, помещается вниз

SetWindowPos(Handle,HWND_BOTTOM,Left,Top,width,height, SWP_SHOWWINDOW)

Короче, "кнопка на рабочем столе". Вот и не хочется, чтобы кнопки "улетали" при Win+D


Feuerraeder   (2002-07-02 14:34:00) [10]

Так будет сворачиваться окно по <Win>+D(или на таск баре нажать "Свернуть все") если поставить "заглушку" на SC_MINIMIZE???


Игорь Шевченко   (2002-07-02 11:15:00) [11]

В корзину надо отправлять программы с несворачиваемым окнами. Хоть бы пользователей пожалели...

Если надо вывести какое-то сообщение о супер-пупер критическом событии, то почему бы не воспользоваться функцией MessageBox с флажком MB_SYSTEMMODAL ?


Виктор Щербаков   (2002-07-02 11:05:00) [12]

Pat © (02.07.02 10:24)
В таком случае можно попробовать WinSight"ом посмотреть, какие сообщения сообщения кто получает. Только это очень нудное занятие :(


Pat   (2002-07-02 10:24:00) [13]

Я уже задавал подобный вопрос в Системе...
Как не дать окну свернуться при выполнении команды проводника "Свернуть все окна"? Минимизация окна при этом не происходит :-(
Есть маленькая идея..."Свернуть все окна" = "Показать DescTop", т.о. остается отловить показ рабочего стола...Как? :-(


Виктор Щербаков   (2002-07-02 09:51:00) [14]

При любом сворачивании в окно приходит WM_SYSCOMMAND с параметром SC_MINIMIZE. Т.е. нужно написать обработчик этого сообщения, и, в случае если wParam = SC_MINIMIZE, не дать окну свернуться.

unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
if Message.CmdType <> SC_MINIMIZE then inherited;
end;

end.


Feuerraeder   (2002-07-02 08:08:00) [15]

слон, ты пробовал другими способами, оно вообще не сворачивается?
мне очень нужно чтобы окно вообще не сдвигалось и не дергалось, при любом виде сворачивании, понимаешь? есть ли другие способы?


слон   (2002-07-02 07:25:00) [16]

нет


Feuerraeder   (2002-07-02 07:22:00) [17]

А возможно такое окно свернуть по <Win>(кнопка Виндовс на клавиатуре)+D?????????????


слон   (2002-07-02 06:37:00) [18]

я делаю так
...
procedure Minim(Sender: TObject);
...
var
Form1: TForm1;
...


procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := Minim;
end;

procedure TForm1.Minim(Sender: TObject);
begin
ShowWindow(Handle, SW_RESTORE);
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Application.Minimize;
end;

...

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо