Форум: "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