从资源 ID 获取 CButton 控件名称?

Get CButton control name from resource id?

本文关键字:控件 CButton 资源 ID 获取      更新时间:2023-10-16

我正在使用C++MFC,并且已经创建了一个与CButtons的简单对话框,每个对话框都与其.bitmap文件和资源ID(ID_BUTTON*(在.rc脚本文件中映射。

类似的行出现在我的 .rc 文件中,在DIALOG描述中:

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

在我的项目中,我正在尝试获取每个CButton对象的资源 ID。我用这个做到了:

int getID = this->GetDlgCtrlID();

但是,如何进一步使用我的资源 ID 来获取CButton控件文本值?意思是:

"TEST|Button7"

如果没有,是否有特定的方法来获得它?

这其实很简单。在使用int getID = this->GetDlgCtrlID();获取资源 ID 的位置,可以使用以下代码获取控件的名称:

CString buttonName;
this->GetWindowText(buttonName);

PS:假设调用是在类成员函数中进行的,那么你实际上不需要this->指针;只需调用GetWindowText()GetDlgCtrlID()函数即可。(但是使用this->不会造成伤害,并且可以使代码更清晰地阅读。

如果要从按钮自己的类函数外部(例如,从父对话框处理程序(获取按钮的文本,则可以使用以下命令:

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

其中idValue是相关按钮(或任何其他控件(的资源 ID。