Visual Studio C ++, как отобразить динамическое сообщение (например, строку) в моем поле About? - PullRequest
0 голосов
/ 08 февраля 2012

Должно быть тривиально.,,при редактировании с помощью редактора ресурсов VS .... в списке инструментов / объектов отображается только «статический текст», а в мастере создания обработчика событий все поля и кнопка [следующая] недоступны.

У меня есть прекрасный блок About - все работает - но вместо статических текстовых полей для отображения -

Я хочу / нужно отобразить несколько строк (строк) текущего состояния времени выполненияinfo .....

Я достаточно хорошо знаю Visual Studio (использую 2008).,,

Если у кого-то есть простой пример - это действительно все, что мне нужно.

Заранее спасибо.

С наилучшими пожеланиями, Кевин Уэйт

Ответы [ 3 ]

2 голосов
/ 08 февраля 2012

Если вы поместите в диалоговое окно статическое текстовое поле, вы можете установить для него любой текст во время выполнения.Сначала вам нужно получить дескриптор окна текстового поля:

HWND hwndText = GetDlgItem(hwndDialog, IDC_MYTEXT);

Затем вы можете установить в него новый текст:

SetWindowText(hwndText, L"Hi mom, this is my first text box!");

Статический текст не предназначен для изменения,поэтому Windows не всегда делает правильные вещи, когда вы меняете это.Вы должны сказать ему стереть и перекрасить так, чтобы новый текст отображался правильно.

InvalidateRect(hwndText, NULL, true);
0 голосов
/ 08 февраля 2012

Если вы хотите отобразить несколько строк текста, вы можете использовать элемент управления EditBox и установить для свойства multiline значение True.

Чтобы передать данные в диалоговое окно about, вам нужно будет передать этистроки в диалоге при его создании (до вызова DoModal);и добавьте строку в поле редактирования в aboutbox OnInitDialog.

Если вам нужно обновить текст в реальном времени, когда открыто диалоговое окно about, вам, вероятно, придется добавить поток, который будет откуда-то извлекать строки, ипользовательский интерфейс будет обновлен этими новыми строками.

Удачи.

0 голосов
/ 08 февраля 2012

Как насчет добавления пустого статического текста и просто установки его свойства Text?

Я только что создал пустое приложение Windows Forms в Visual Studio C ++ Express и перетащил элемент управления «Метка» на форму. В функции формы Load текст можно задать так:

this->label1->Text = "Hello World";

Тот же метод можно использовать, если вы хотите более крупные тексты. Просто используйте вместо этого многострочное TextBox.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...