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

Вниз

Как сделать мою форму позади всех?   Найти похожие ветки 

 
NikNet ©   (2005-09-26 16:47) [0]

А также как сделать что  бы при сворачиваний
сворачивоалсь не в TaskBar?


 
umbra ©   (2005-09-26 16:52) [1]

а куда?


 
NikNet ©   (2005-09-26 17:02) [2]

// umbra ©   (26.09.05 16:52) [1]

Как  MDI формы... (Как WORD) в угол.


 
DVM ©   (2005-09-26 17:27) [3]


>  Как сделать мою форму позади всех?

SetShellWindow() или WM_WINDOWPOSCHANGING


> А также как сделать что  бы при сворачиваний
> сворачивоалсь не в TaskBar?

SetShellHookWindow() + HSHELL_GETMINRECT


 
umbra ©   (2005-09-26 19:05) [4]

Принцип такой (спасибо aplet за информацию):

unit Unit1;

interface

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

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

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.SysCommand(var Msg: TWMSysCommand);
begin
 if (Msg.CmdType <> SC_MINIMIZE) and (Msg.CmdType <> SC_RESTORE) then
   inherited;
 if Msg.CmdType = SC_MINIMIZE then
     begin
       ClientHeight := 0;
       Width := 50;
       Left := 0;
       Top := Screen.Height - Height;
       WindowState := wsMinimized;
     end;
  if Msg.CmdType = SC_RESTORE then
     begin
       Top := 50;
       Left := 150;
       ClientHeight := 500;
       Width := 500;
       WindowState := wsNormal;
     end;
end;

end.

Но для кооректного восстановления окна надо еще где-то хранить информацию
о предыдущем состоянии, ну и остается иконка в панели задач.


 
NikNet ©   (2005-09-26 19:07) [5]

А как  все свернутые окна поместить в ToolBar? учытывая что Explorer(а) нет!


 
umbra ©   (2005-09-26 19:21) [6]


> Explorer(а) нет!

В каком смысле?


 
umbra ©   (2005-09-26 19:31) [7]

Если надо при сворачивании окон вообще их убирать и создавать соответствующие кнопки на тулбаре в другом окне, то тогда, в общем, делать надо не совсем так.


 
NikNet ©   (2005-09-26 20:25) [8]

umbra ©   (26.09.05 19:31) [7] А как?


 
DVM ©   (2005-09-27 10:30) [9]


> А как  все свернутые окна поместить в ToolBar? учытывая
> что Explorer(а) нет!

Я уже ответил, ты и будешь продолжать спрашивать тупо одно и то же?
Имхо за непосильную задачу взялся.

> учытывая что Explorer(а) нет!

На год работы примерно.


 
NikNet ©   (2005-09-27 13:36) [10]

DVM ©   (27.09.05 10:30) [9]

Хватит! Я уже нашол компонент ТаскБар точно такой же как и Винь
только вот приходится все что сверрху делать самому!

Сделал быстрый запуск программ! Теперь надо сделать
что бы все сворачивающие окна поподали в мой ТоллБар

Как это сделать!

И ещё из кокого контрола создан ТрайИкон?


 
Antonn ©   (2005-09-27 13:40) [11]

NikNet ©   (27.09.05 13:36) [10]
почему-то мне кажется, что для вас это задача, на данный момент, трудновата. может стоит написать блокнот?


 
DVM ©   (2005-09-27 13:43) [12]


> Теперь надо сделать
> что бы все сворачивающие окна поподали в мой ТоллБар
>
> Как это сделать!

HSHELL_GETMINRECT + WH_SHELL + RegisterShellHookWindow()

> И ещё из кокого контрола создан ТрайИкон?

Из чего сделан ТрайИкон я не знаю, потому как на таскбаре нет такого окна, а вот окно области уведомлений в Win2000/xp сделано из ToolBar, в Win98/95 это просто окно, безо всяких контролов иконки отрисовываются прямо на нем.

> только вот приходится все что сверрху делать самому!

Ну-ну. Зря ты меня не слушаешь, поверь уж мне, человеку много времени потратившему на написание шеллов, подобных эксплореру - непростая это задача.


 
umbra ©   (2005-09-27 13:49) [13]


> все сворачивающие окна поподали в мой ТоллБар



procedure TForm1.SysCommand(var Msg: TWMSysCommand);
begin
if (Msg.CmdType <> SC_MINIMIZE) then
  inherited;
if Msg.CmdType = SC_MINIMIZE then
    begin
       Hide;
       Enabled := false;
       {добавляем на тулбар кнопку и сохраняем где-нибудь ссылку на окно,
        соответствующее кнопке}
    end;
end;


После этого окно скроется (и из панели задач)  и перестанет обрабатывать сообщения.
Для кнопок на тулбаре в обработчике щелчка мышкой берем ссылку на соответствующее окно и пишем


procedure ToolButtonclick(............);
begin
 Windowref.Enabled := true;
 Windowref.Show;
end;


Но вообще-то работать все это должно только в винде (т.е. с эксплорером?). Не в винде обработчик сообщения должен быть другой (если вообще есть сообщения). нельзя ли подробней, что означает "нет эксплорера"?


 
DVM ©   (2005-09-27 13:52) [14]


> Но вообще-то работать все это должно только в винде (т.е.
>  с эксплорером?). Не в винде обработчик сообщения должен
> быть другой (если вообще есть сообщения). нельзя ли подробней,
>  что означает "нет эксплорера"?

Он хочет шелл (эксплорер) заменить своим. А за анимацию сворачивающегося окна в произвольный прямоугольник на экране отвечает именно структура передающаяся с HSHELL_GETMINRECT


 
NikNet ©   (2005-09-27 18:34) [15]

DVM ©   (27.09.05 13:43) [12]
Зря ты меня не слушаешь, поверь уж мне

Мог бы и поделится :(


 
DVM ©   (2005-09-28 10:16) [16]


> Мог бы и поделится :(

Советом пожалуйста, некоторыми функциями пожалуйста, но готовой разработкой - не вижу смысла ни для себя ни для тебя (половину там ты не поймешь все равно, без обид)


 
DVM ©   (2005-09-28 10:29) [17]


> NikNet ©  

вот готовый экзешник (не самый новый, но уже достаточно функциональный), пароль там 3141592653
Запускать лучше закрыв эксплорер, но можно и вместе с ним.
инсталляция как шелл myshell.exe -install, удаление myshell -uninstall

http://213.33.194.5/files/shell.zip


 
NikNet ©   (2005-09-29 06:19) [18]

DVM ©   (28.09.05 10:29) [17] Ну и какой толк от неё?
Может даш? Я разбирусь а как сделаю так и тебе дам (Исходник)

NikNet@yandex.ru


 
NikNet ©   (2005-10-02 12:29) [19]

DVM ©   (26.09.05 17:27) [3] А где взять этот SetShellWindow?


 
DVM ©   (2005-10-03 10:14) [20]


> NikNet ©   (02.10.05 12:29) [19]

function SetShellWindow(Handle: HWND): HWND; stdcall; external "User32.dll";


 
NikNet ©   (2005-10-03 17:12) [21]

DVM ©   (03.10.05 10:14) [20]

Что-то  она не   работает... :(

<офтоп> Почту смотрел </офтоп>


 
DVM ©   (2005-10-04 10:34) [22]


> Что-то  она не   работает... :(

И не будет, так как ты неправильно ее используешь.

1) Работать она будет только в отсутствии эксплорера или др оболочки.
2) Окно должно быть создано на WinAPI, т.к. с VCL окнами она почему-то (я не разбирался почему) не работает.


 
NikNet ©   (2005-10-04 16:05) [23]

DVM ©   (04.10.05 10:34) [22]
А я та думаю чё он не работает =)

А как без этой ф-ций выставить и что бы все элементы на форме работали!

Ато сколько не дают не работают!


 
DVM ©   (2005-10-05 10:16) [24]


> А как без этой ф-ций выставить и что бы все элементы на
> форме работали!

http://hardware.org.ru/faq/answ.php?id=4415



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

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

Наверх





Память: 0.51 MB
Время: 0.036 c
4-1128520529
Profik
2005-10-05 17:55
2005.12.11
MailSlot


1-1132010992
Dark Lord
2005-11-15 02:29
2005.12.11
Форма в dll


14-1132562028
Drakosha
2005-11-21 11:33
2005.12.11
Энциклопедия.


2-1132602966
Антоха
2005-11-21 22:56
2005.12.11
Наипростешая програмка


14-1132673838
Германн
2005-11-22 18:37
2005.12.11
TuRKiSH HaCKeR





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