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

Вниз

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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.034 c
4-1086155493
ra4fcr
2004-06-02 09:51
2004.07.11
CharToOem() ?


14-1087813143
SoftX
2004-06-21 14:19
2004.07.11
А не перестроить нам картину мира?


1-1088151444
r9000
2004-06-25 12:17
2004.07.11
Невидимость кнопок "Назад","Вперед" в IE.


4-1085815460
R
2004-05-29 11:24
2004.07.11
Определение текста items ListView чужого окна


1-1087975008
Ega23
2004-06-23 11:16
2004.07.11
Можно ли внутри функции получить её имя?





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