Главная страница
    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
14-1087923648
Piter
2004-06-22 21:00
2004.07.11
Ура! Я избавился от глюков...


1-1088139220
Vilux
2004-06-25 08:53
2004.07.11
Как мне послать компоненту комбинацию клавиш Ctrl+V или Shift+Ins


4-1085655974
mmn
2004-05-27 15:06
2004.07.11
Проблема обхода реестра Windows (TRegistry).


3-1087376529
B-boy Dimo-N
2004-06-16 13:02
2004.07.11
Вертикальная прокрутка данных в DBGrid


1-1088582894
Alex_2004
2004-06-30 12:08
2004.07.11
MS Word





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