MessageDlg... корректность отображения

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Добрый день! Пишу на дельфе прогу и заметил, что у некоторых конечных пользователей отображение сообщения, вызванное методом MessageDlg() происходит на заднем фоне основного окна приложения, при этом приложение ожидает нажатие кнопок управления в окне сообщения и не дает переключится на него. Исключением является Alt+tab или сворачивание/разворачивание главного окна приложения...

Как можно решить такую проблему? Или определить причину такого отображения сообщений.
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Дельфи под рукой не имею кучу лет, поэтому всё на уровне интуиции. Каждое окно в винде имеет своего родителя. Соответственно решение проблемы - в явном указании родителя у диалога. См. SetWindowLong и GWL_HWNDPARENT

При этом очевидно проще будет сразу использовать WinAPIшный MessageBox, у которого первый параметр как раз и есть родительское окно. Подозреваю, что в современных версиях винды он ещё и красивше отображаться будет :)
Даже самый дурацкий замысел можно воплотить мастерски
Ответить