是否从资源id获取CButton控件名称? 我使用C++ MFC,并创建了一个简单的对话框,CButtons,每个都用它的位图文件和资源ID IDYButk*在.R.Script文件中映射。

是否从资源id获取CButton控件名称? 我使用C++ MFC,并创建了一个简单的对话框,CButtons,每个都用它的位图文件和资源ID IDYButk*在.R.Script文件中映射。,c++,visual-studio,user-interface,mfc,cbutton,C++,Visual Studio,User Interface,Mfc,Cbutton,类似的行出现在my.rc文件的对话框描述中: CONTROL "TEST|Button7",ID_BUTTON2,"Button",BS_OWNERDRAW | WS_TABSTOP,234,29,30,71 在我的项目中,我试图获取每个CButton对象的资源id。我是这样做的: int getID = this->GetDlgCtrlID(); 但是如何进一步使用资源ID来获取CButton控件文本值呢?意思是: "TEST|Button7" 如果没有,有没有具体

类似的行出现在my.rc文件的对话框描述中:

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函数。但是使用这个->并没有坏处,并且可以使代码更清晰易读

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

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

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

您的问题令人困惑,因为您提到的资源名称肯定是ID\u BUTTON2。也许您应该重新命名它,因为您接受的答案向您展示了如何获取与控件关联的文本值,该文本值与资源名称不同。请改为控件名称。对不起!还是MFC新手,我很容易出现打字错误。