#visual-c #mfc
#visual-c #mfc
Вопрос:
Я инициализирую диалоговое окно с помощью OnInitDialog и инициализирую статический текст как «загрузка».
теперь у меня была функция, после того как она вернет статический текст, который должен измениться с «loading» на «initialized».
возможно ли это??
может ли текст измениться даже после появления диалогового окна??
Ответ №1:
Да, конечно, это возможно. Но вам придется изменить его идентификатор на что-то другое, кроме IDC_STATIC. Затем вы можете использовать его как любой другой элемент управления.
Лично я бы создал из него управляющую переменную и сделал
m_MyStatic.SetWindowText(L"Initialized");
(Не совсем. Я бы сохранил строку в STRINGTABLE и загрузил ее оттуда, надеюсь, вы поняли идею)
Комментарии:
1. каким методом я могу вызвать этот оператор. Диалоговое окно открывается только при возврате функции OnInitDialog, и где я могу использовать этот оператор, поскольку в моей программе сейчас нет запущенных методов.
2. Везде, где вы хотите изменить текст. Например, после успешного возврата функции, которая инициализирует то, что вы инициализируете
3. когда OnInitDialog возвращается, у меня нет никакого запущенного метода в моей программе, поскольку он начался с вызова OnInitDialog. У меня есть несколько других методов для нажатия кнопок
4. Что означает «инициализированный»? Что вы инициализируете? Если это просто диалоговое окно, нет смысла изменять текст, поскольку диалоговое окно не будет отображаться, пока вы не выйдете из OnInitDialog, поэтому, если вы видите диалоговое окно, оно инициализировано. Если вы хотите что-то инициализировать, но показываете диалоговое окно во время инициализации, вам понадобится другой поток. Когда поток уведомит об успешном завершении, вы можете изменить текст.
5. Я просто сказал, что в качестве примера, на самом деле я просматриваю все COM-порты, чтобы найти свое устройство, что занимает много времени, если я вызову это в OnInitDialog, это займет очень много времени, и мое диалоговое окно не загрузится, поскольку метод OnInitDialog не возвращается, поэтому я вызвал его как отдельный поток, но я хочу изменить статический текст в диалоговом окне, когда поток вернется.