Получить имя элемента управления CButton из идентификатора ресурса? - PullRequest
2 голосов
/ 24 сентября 2019

Я использую C ++ MFC и создал простой диалог с CButtons, каждый из которых сопоставлен со своими файлами .bitmap и идентификаторами ресурсов (ID_BUTTON *) в файле сценария .rc.

Подобные строкиприсутствует в моем .rc файле, в DIALOG описании:

CONTROL         "TEST|Button7",ID_BUTTON2,"Button",BS_OWNERDRAW | WS_TABSTOP,234,29,30,71

В моем проекте я пытаюсь получить идентификатор ресурса каждого CButton объекта.Я сделал это следующим образом:

int getID = this->GetDlgCtrlID();

Но как я могу использовать свой идентификатор ресурса, чтобы получить текстовое значение элемента управления CButton?Это означает:

"TEST|Button7"

Если нет, есть ли конкретный способ получить его?

1 Ответ

4 голосов
/ 24 сентября 2019

Это на самом деле очень просто.Если вы используете int getID = this->GetDlgCtrlID(); для получения идентификатора ресурса, вы можете использовать этот код для получения имени элемента управления:

CString buttonName;
this->GetWindowText(buttonName);

PS: если вызовы выполняются внутри функции-члена класса, тогда вы нена самом деле нужен указатель this->;просто вызовите функции GetWindowText() или GetDlgCtrlID().(Но использование this-> не причиняет вреда и может сделать код немного более понятным для чтения.)

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

CString buttonName;
GetDlgItem(idValue)->GetWindowText(buttonName);

Где idValue - идентификатор ресурса соответствующей кнопки (или любого другого элемента управления).

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