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

时间:2019-09-24 10:55:00

标签: c++ visual-studio user-interface mfc cbutton

我正在使用C ++ MFC,并使用CButton创建了一个简单的对话框,每个按钮都将其.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"

如果没有,有没有一种特定的方法来获得它?

1 个答案:

答案 0 :(得分:4)

实际上非常简单。在使用int getID = this->GetDlgCtrlID();获取资源ID的地方,可以使用以下代码获取控件的名称:

CString buttonName;
this->GetWindowText(buttonName);

PS:假设调用是在类成员函数内进行的,则实际上并不需要this->指针;只需调用GetWindowText()GetDlgCtrlID()函数即可。 (但是使用this->并没有害处,并且可以使代码更清晰易读。)

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

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

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