从资源 ID 获取 CButton 控件名称?
Get CButton control name from resource id?
我正在使用 C++ MFC,并使用 CButtons 创建了一个简单的对话框,每个 CButtons 都映射到 .rc 脚本文件中的 .bitmap 文件和资源 ID (ID_BUTTON*)。
我的 .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:假设调用是在 class 成员函数内进行的,那么您实际上 不需要 this->
指针;只需调用 GetWindowText()
或 GetDlgCtrlID()
函数。 (但是使用 this->
没有坏处,并且可以使代码更清晰易读。)
如果您想从 外部 按钮自己的 class 函数中获取按钮的文本 - 例如,从父对话框处理程序中,您可以使用此:
CString buttonName;
GetDlgItem(idValue)->GetWindowText(buttonName);
其中 idValue
是相关按钮(或任何其他控件)的资源 ID。
我正在使用 C++ MFC,并使用 CButtons 创建了一个简单的对话框,每个 CButtons 都映射到 .rc 脚本文件中的 .bitmap 文件和资源 ID (ID_BUTTON*)。
我的 .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:假设调用是在 class 成员函数内进行的,那么您实际上 不需要 this->
指针;只需调用 GetWindowText()
或 GetDlgCtrlID()
函数。 (但是使用 this->
没有坏处,并且可以使代码更清晰易读。)
如果您想从 外部 按钮自己的 class 函数中获取按钮的文本 - 例如,从父对话框处理程序中,您可以使用此:
CString buttonName;
GetDlgItem(idValue)->GetWindowText(buttonName);
其中 idValue
是相关按钮(或任何其他控件)的资源 ID。