У меня есть приложение, состоящее из одного главного окна и всплывающего окна. Я хочу быть на вершине всех других приложений. Назовем «Окно А» в главное окно «Окно В» на всплывающее окно и «Окно С» в другое окно приложения.Delphi Window поверх всех других приложений, а главное окно ниже
Я устанавливаю окно B сверху, используя этот код:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NoMove or SWP_NoSize);
Это работает, как ожидалось, я могу открыть другое приложение (окно C) и окно B держит на вершине. Но если я нажму на его заголовок окна, то «Window A» выйдет вперед, поверх «Window C». Есть ли способ не допустить, чтобы главное окно (Window A) добралось до фронта, щелкнув любую часть окна B ?.
Является ли Window A принадлежащим Window B? – andlabs
Переопределить CreateParams of B, чтобы установить WndParent = 0. Задавалось много раз здесь. BTW, вы можете использовать fsStayOnTop как FormStyle. –
Очевидно, что вы не сможете быть на вершине всех других окон. Вы проиграете другим окнам, которые хотят сделать то же самое. Вероятно, A является владельцем B в смысле Win32. Сделайте то, что говорит Сертак, чтобы сделать B недействительным. –