win32: изменить текст MessageBox? - PullRequest
0 голосов
/ 22 апреля 2009

Моя программа имеет несколько потоков. Я использую окно сообщения для отображения информации для пользователя. Есть ли в любом случае (или альтернатива окну сообщения), чтобы я мог другой поток обновлять / изменять отображаемый текст окна сообщения, пока окно сообщения все еще находится на экране и отображается пользователем?

Ответы [ 3 ]

5 голосов
/ 22 апреля 2009

Если вы используете стандартное окно сообщений Win32, я не верю, что есть способ изменить текст после того, как окно уже отображается (вы вводите модальный насос сообщений).

Я бы предложил вам создать собственное окно, которое будет прослушивать сообщения / обновления из других ваших тем. Таким образом, вы контролируете.

1 голос
/ 04 июня 2009

Используя потоковые перехватчики через GetCurrentThreadId () и SetWindowsHookEx (), вы можете перехватывать сообщения, которые MessageBox () получает внутри, а также получать доступ к дескриптору главного окна диалога, который затем дает вам доступ ко всем дочерние элементы управления диалога. Затем вы можете настроить диалог и его управление по мере необходимости. Этот метод обычно используется для реализации диалогов с автоматическим закрытием (до появления MessageBoxTimeout ()), настройки текста кнопок и т. Д.

0 голосов
/ 22 апреля 2009

Я не верю, что есть прямой способ сделать это, вы, вероятно, могли бы попытаться получить ручку окна, но это слишком грязно. Лучше всего создать собственное диалоговое окно, чтобы иметь полный контроль над ним.

...