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

Вниз

BOTTOMMOST OKHO   Найти похожие ветки 

 
Шубин С.   (2004-06-01 23:14) [0]

Здравствуйте!
Мне нужно сделать окно, которое должно находиться под всеми окнами, даже если оно активно. Я нашел вот что:

procedure WMWindowPosChanging(var Message:TWMWindowPosChanging);
message WM_WINDOWPOSCHANGING;
//а вот это в implementation
procedure TForm1.WMWindowPosChanging(var Message:TWMWindowPosChanging);
begin
with message.WindowPos^ do flags:=flags or SWP_NOZORDER;
inherited;
end;

НО! Как это сделать без VCL?
Заранее благодарен, Шубин С.


 
DVM ©   (2004-06-01 23:47) [1]

Да так же. Вы меня извините, но раз вы пишете на API, то в сообщениях надо же разбираться чуть чуть.
А еще советую поискать в сторону SetShellWindow()


 
DVM ©   (2004-06-01 23:49) [2]

Да так же. Вы меня извините, но раз вы пишете на API, то в сообщениях надо же разбираться чуть чуть.
А еще советую поискать в сторону SetShellWindow()


 
Шубин С.   (2004-06-02 17:31) [3]

Так же - не получается.
( я пробовал вот как:

WM_WINDOWPOSCHANGING:
 WINDOWPOS * ppos = (WINDOWPOS*) lparam;
 ppos->flags |= SWP_NOZORDER;

Не работает. Поэтому такой вопрос и задал.
)
А SetShellWindow я почему-то в MSDN"e не нашел, хотя многие на неё отсылают..


 
Sceptic   (2004-06-02 18:03) [4]

Не поверю, что глубокоуважаемые Мастера Delphi не знают, что на самом деле делает VCL...


 
Gero ©   (2004-06-02 18:08) [5]


> Не поверю, что глубокоуважаемые Мастера Delphi не знают,
> что на самом деле делает VCL...

А Вы раскроете мне эту тайну?
Что же на самом деле делает VCL?
Я хоть и не мастер, но все равно интересно.


 
DVM ©   (2004-06-02 19:08) [6]

WM_WINDOWPOSCHANGING:
begin
 PWindowPos(lParam)^.flags:= PWindowPos(lParam)^.flags or SWP_NOZORDER;
 Result:=0;
end


 
DVM ©   (2004-06-02 19:22) [7]


> А SetShellWindow я почему-то в MSDN"e не нашел, хотя многие
> на неё отсылают..

 function SetShellWindow(hWnd: HWND): dword; stdcall; external "User32.dll" name "SetShellWindow";


 
Sceptic   (2004-06-02 19:29) [8]

To Gero:
Я вот тоже хочу узнать...


 
Шубин С.   (2004-06-02 19:33) [9]

To DVM:
Большое спасибо за ответ.
Сейчас проверю.
А что делает функция SetShellWindow?
Что она будет делать при запущенном Эксполрером?
А без него?
З.Ы.
Простите за назойливость...


 
DVM ©   (2004-06-02 20:11) [10]


> Что она будет делать при запущенном Эксполрером?

Ничего не будет. Без эксплорера закрепит окно на заднем плане.
С VCL не работает, кстати.


 
Шубин С.   (2004-06-02 20:28) [11]

Благодарю! А с VCL она не работает может быть вот почему:
Я написал приложение, которое показывает список окон, которые находятся на таскбаре в виде кнопок. Всё бы хорошо, но мне нужно было определить еще и активное приложение. Так получилось вот что: какая-то ВинАПИ функция возвращает ХВНД активного окна, и для не-ВЦЛ приложений этот ХВНД совпадал с тем ХВНД, окно которого было на таскбаре, а для ВЦЛ ХВНД окна на таскбаре НЕ СОВПАДАЛ с ХВНД видимого окна. Может быть поэтому эта ф-ция и не работает для ВЦЛ.
З.Ы.
Прошу прощения за ТРАНСЛИТ. У меня почему-то в ХР раскладка перестала переключаться, а копи/пасте задолбался делать...


 
DVM ©   (2004-06-02 20:49) [12]


> ХВНД окна на таскбаре НЕ СОВПАДАЛ с ХВНД видимого окна.
> Может быть поэтому эта ф-ция и не работает для ВЦЛ.

Да, я знаю, из-за скрытого окна объекта Application она не работает.

> Прошу прощения за ТРАНСЛИТ. У меня почему-то в ХР раскладка
> перестала переключаться, а копи/пасте задолбался делать...

PuntoSwitcher поставь.:) Глюк часто возникает, когда с эксплорером экспериментируют.



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

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

Наверх




Память: 0.49 MB
Время: 0.052 c
1-1088216448
x_byte
2004-06-26 06:20
2004.07.11
webbrowser и его parent


14-1088024882
mr. First
2004-06-24 01:08
2004.07.11
Где зарегистрироваться?


9-1080245106
GunmeN
2004-03-25 23:05
2004.07.11
Дым войны


3-1087301447
max1000
2004-06-15 16:10
2004.07.11
При печати Word а через мою программу выдает ошибку


14-1087494698
Подкрадуха
2004-06-17 21:51
2004.07.11
SDK для SkyStar1