Изменить содержимое окна редактирования при нажатии кнопки в MFC - PullRequest
4 голосов
/ 31 января 2012

У меня есть окно редактирования и кнопка в диалоговом окне. Как я могу изменить содержимое во время выполнения поля редактирования при нажатии кнопки? Мне нужно прочитать новую запись из файла и опубликовать ее в окне редактирования при нажатии кнопки, и я использую mfc.

Ответы [ 2 ]

8 голосов
/ 31 января 2012

Вы можете установить текст элемента управления Edit (обернутый CEdit классом в MFC), вызвав метод SetWindowText , который он наследует от CWnd базовый класс.

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

Что-то вроде:

BOOL CMyDialog::OnCommand(WPARAM wParam, LPARAM lParam)
{
    if (HIWORD(wParam) == BN_CLICKED && LOWORD(lParam) == IDC_MYBUTTON)
    {
        m_Edit.SetWindowText(TEXT("My string"));
    }
    return CWnd::OnCommand(wParam, lParam);
}

Было бы очень полезно получить и прочитать книгу о МФЦ.Это довольно простой материал, но его можно охватить одним ответом, если вы еще не понимаете фундаментальных концепций.

Использование мастера классов сделало бы это еще проще ... Вызовите его с помощью клавиш Ctrl + W и следуйте инструкциям на экране.Вы получите что-то вроде:

void CMyDialog::OnMyButton()
{
    m_Edit.SetWindowText(TEXT("My string"));
}
6 голосов
/ 16 октября 2014

После того, как вы нажали кнопку, в большинстве случаев самый простой способ изменить текст в элементе управления Edit:

SetDlgItemText(IDC_EDIT_ID, "Desired Text String")

Где IDC_EDIT_ID - это ID элемента управления Edit (установленв окне properties

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