Добрый день! Пишу на дельфе прогу и заметил, что у некоторых конечных пользователей отображение сообщения, вызванное методом MessageDlg() происходит на заднем фоне основного окна приложения, при этом приложение ожидает нажатие кнопок управления в окне сообщения и не дает переключится на него. Исключением является Alt+tab или сворачивание/разворачивание главного окна приложения...
Как можно решить такую проблему? Или определить причину такого отображения сообщений.
MessageDlg... корректность отображения
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

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

Даже самый дурацкий замысел можно воплотить мастерски