c++ - 从资源 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"
如果没有,有没有具体的获取方式?
解决方案
其实很简单。在您用于int getID = this->GetDlgCtrlID();
获取资源 ID 的地方,您可以使用此代码来获取控件的名称:
CString buttonName;
this->GetWindowText(buttonName);
PS:假设调用是在类成员函数内部进行的,那么您实际上并不需要this->
指针;只需调用GetWindowText()
orGetDlgCtrlID()
函数。(但使用this->
并没有坏处,并且可以使代码更清晰易读。)
如果您想从按钮自己的类函数之外获取按钮的文本 - 例如,从父对话框处理程序,您可以使用:
CString buttonName;
GetDlgItem(idValue)->GetWindowText(buttonName);
idValue
相关按钮(或任何其他控件)的资源 ID在哪里。
推荐阅读
- jquery - 水平 scrollLeft 在 IE 和 Edge 上不起作用?
- vhdl - VHDL实现异或数据作为函数
- php - 如何在没有浏览器生成的用户代理的情况下通过 cURL 将事件数据发送到 Google Measurement Protocol?
- javascript - 按空格键按整页水平滚动
- angular - 在 Angular 7 中获取表单组上的验证器列表
- javascript - 我的变量没有从真变为假,如何解决?
- python - 使用 NN 进行聚类识别
- typescript - 如何用常量定义对象的通用接口?
- android - Android webview没有将地理位置发送到javascript
- sql - 使用 GTFS 提要检测停止类型