Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как заставить форму находиться позади всех окон в системе

Delphi , Программа и Интерфейс , Размеры и Положение

Как заставить форму находиться позади всех окон в системе

Програмиирование на C++: чтобы купить туалетную бумагу, Вы должны показать унитаз и попу.
Программирование на Visual Basic: Когда Вы покупаете туалетную бумагу, в Вашу корзину положат еще унитаз и попу.

Для этого достаточно висеть на WM_ACTIVATE и при активации окна помещать последнее вниз Z-order'а:


SetWindowPos(
Handle, // здесь указать хэндл окна формы
HWND_BOTTOM,
0, 0, 0, 0,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE or SWP_NOREDRAW

Вопрос очень умный! Чтобы сделать окно появляться за всеми другими окнами в системе, вы можете использовать функцию SetWindowPos с параметром HWND_BOTTOM. Это переместит окно на дно порядка Z, сделав его появляться за всеми другими окнами.

Вот пример кода на C++:

#include <Windows.h>

// ...

void BringFormToBack(HWND hWnd)
{
    SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0,
                  SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOREDRAW);
}

А вот эквивалентный код на Visual Basic:

Private Sub BringFormToBack()
    SetWindowPos Me.Handle, HWND_BOTTOM, 0, 0, 0, 0,
                  SWP_NOACTIVATE Or SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOREDRAW
End Sub

В обоих случаях замените hWnd на.handle вашего окна формы.

Обратите внимание, что функция SetWindowPos влияет только на порядок Z-окна в рамках одного потока. Если у вас есть несколько потоков, создавая окна, вам нужно использовать другие техники для обеспечения того, что ваш окно формы появляется за всеми другими.

Также помните, что это подход может не быть подходящим для всех сценариев, особенно если вы разрабатываете приложение с сложными требованиями управления окнами. В таких случаях рассмотрите использование болееadvanced техник, таких как создание отдельного потока или процесса для окна формы, или реализация custom window ordering logic.

Для того, чтобы форма находилась позади всех окон в системе, достаточно висеть на событии WM_ACTIVATE и при активации окна помещать последнее вниз Z-order'а с помощью функции SetWindowPos.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Размеры и Положение ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 01:52:34/0.0032570362091064/0