我正在使用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"
如果没有,有没有一种特定的方法来获得它?
答案 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。