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

Вниз

Как не дать окну свернуться   Найти похожие ветки 

 
?Feuerraeder   (2002-07-02 04:42) [0]

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


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

я делаю так
...
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.


 
Feuerraeder   (2002-07-02 07:22) [2]

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


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

нет


 
Feuerraeder   (2002-07-02 08:08) [4]

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


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

При любом сворачивании в окно приходит 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.


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

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


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

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


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

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

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


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

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


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

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

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

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


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

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

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

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


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

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


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

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


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

Pat © (02.07.02 15:11)

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

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

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

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




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

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


 
ggrisha   (2002-07-02 17:07) [16]

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


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


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

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

Удачи.


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

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

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

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

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






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

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

Наверх





Память: 0.48 MB
Время: 0.009 c
1-3361
Елена
2002-08-22 08:09
2002.09.02
OnKeyDown формы


1-3453
DeepProg
2002-08-20 15:32
2002.09.02
Сделано или нет?


14-3630
Глюкоген
2002-08-05 15:08
2002.09.02
А я знаю как избавить Windows от ВСЕХ ГЛЮКОВ!!!!!!!!!!!!!!!!


14-3602
Bboy
2002-08-07 15:19
2002.09.02
Очень нужна программа


6-3549
CAHEK
2002-06-22 22:00
2002.09.02
Посчитать траффик из I-net а





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