如何在 MFC 中访问主对话框的元素?元素是在可视化编辑器VS 2012中创建的
How to get access to main dialog's element in MFC? Element was created in visual editor VS 2012
我在VS 2012中的可视化资源编辑器中创建了应用程序主窗体上的几个组件(其中一个是CStatictext)。
我现在想访问它,所以我在MainFrm.cpp中的某个地方写了一篇文章(代码在点击其中一个按钮后执行,所以在构建完所有内容之后):
CStatic * temp = (CStatic *) GetDlgItem(IDC_OPERATION_INFO);
temp->SetWindowText(text);
在执行第二行代码时,我得到了错误:
Debug Assertion Failed!
Program: C:Windowssystem32mfc110ud.dll
File: f:\ddvctoolsvc7libsshipatlmfcsrcmfcwinocc.cpp
Line: 245
我做错了什么
CStatic是通过可视化编辑器创建的,而不是在代码中创建的。Ofc我在申请表上看到了。
静态控件可能在CDialog或CFormView派生类上,而不是CMainFrame上。GetDlgItem仅适用于作为调用类的子级的控件。
访问控件的更好方法是在可视化编辑器中右键单击控件,然后选择"添加变量"。它将允许您向正确的父类添加一个CStatic变量(如m_opinfo)。然后该类可以调用m_opinfo.SetWindowText(text).
您还应该注意,GetDlgItem使用起来可能不安全,因为它返回了一个临时指针。指针仅对正在执行的代码(方法)的作用域有效。你应该听从ScottMcP的建议。
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- 如何从C++而不是虚幻编辑器中添加静态网格体组件的值?
- UE4 - Visual Studio在我从编辑器添加新的c ++文件后无法打开任何源文件 - UBT_COMPILED
- 图标编辑器中的自定义颜色 (VS 2015)
- Qt的QFontMetrics::horizontalAdvance()缺少代码编辑器实现
- 如何在文本编辑器中处理 [-Wc++11-extensions]
- C++链接编辑器找不到函数声明(未定义的引用)
- 如何将按钮添加到节点的属性编辑器面板,该面板调用该节点内的方法?
- QT创建者(4.2.2)编辑器中的独特指针导航
- 带有cmake的qtCreator,编辑器中未正确解析__cplusplus值
- 检查重叠时,虚幻编辑器会崩溃
- 如何在Windows中将使用Qt制作的记事本设置为默认文本编辑器
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- UTF-16LE 编码问题与 Qt 文本编辑器用 C++ 编写
- Qt无法手动连接到任何插槽(UI编辑器)
- 编辑器(VS2019)拒绝了示例中的getline(stream,string)
- Qt委托编辑器弹出,没有父级
- 如果要调用多个成员函数,对象编辑器是否是一种好方法?
- 如何在 MFC 中访问主对话框的元素?元素是在可视化编辑器VS 2012中创建的