Как отобразить строку в окне редактирования диалогов с помощью функции Run () UI Thread Classes

У меня есть приложение на основе диалога. По умолчанию Visual Studio создала приложение и класс Dlg. Я добавил кнопки, поля ввода и т. Д. В свой диалог. Когда пользователь нажимает кнопку «СТАРТ» в моем диалоговом окне, он запускает 5-минутный автоматический тест и дает текстовые обновления и прогресс в окне редактирования. Теперь, когда это работает отлично, я бы хотел, чтобы пользователь мог нажимать на другие кнопки и флажки в диалоговом окне во время выполнения автоматического теста. Для этого я создал класс потока пользовательского интерфейса с помощью мастера классов CMyThread. В CMyThread я переместил код, который выполнялся при нажатии кнопки START, в функцию Run () в CMyThread. Я планирую вызывать функцию CMyThread Run () при нажатии кнопки START. Я все еще хотел бы получать информацию о прогрессе и обновлениях в окне редактирования диалогов во время 5-минутного автоматического теста. Как отправить строку из CMyThread Run () в поле редактирования в диалоговом окне и показать ее пользователю?

0

Решение

Это достигается тем, что класс MyThread отправляет сообщения для обработки в цикле сообщений диалога.

Есть и другие похожие вопросы по SO с полезными ответами. Как сообщить объекту CDialog о выполненной задаче из другого потока?

А вот статья с примером кода http://forums.codeguru.com/showthread.php?312454-MFC-Thread-How-to-access-UI-elements-from-a-thread-in-MFC

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]