首页 > 解决方案 > 从资源 id 获取 CButton 控件名称?

问题描述

我正在使用 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"

如果没有,有没有具体的获取方式?

标签: c++visual-studiouser-interfacemfccbutton

解决方案


其实很简单。在您用于int getID = this->GetDlgCtrlID();获取资源 ID 的地方,您可以使用此代码来获取控件的名称:

CString buttonName;
this->GetWindowText(buttonName);

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

如果您想从按钮自己的类函数之外获取按钮的文本 - 例如,从父对话框处理程序,您可以使用:

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

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


推荐阅读