在 MFC 应用程序中动态创建控件
Create a control dynamically in an MFC application
根据Microsoft的这个链接,应该可以定义一个 CButton 并指定其父窗口 (CDialog),而无需将 CButton 作为对话框的成员,但我做不到。
因此,如果 myButton 是 CDialog 派生 (myCDialog) 类的成员,则以下代码有效:
BOOL myCDialog::OnInitDialog() {
CDialog::OnInitDialog();
myButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 20, 100, 50), this, 1000);
...
}
但是当我谈论动态创建时,我希望能够动态创建任意数量的按钮(我不能将它们定义为类成员,因为我不知道有多少!
我在另一个类中尝试了以下代码,将指向 myCDialog 的指针作为父窗口,类似于链接中显示的代码,但它失败了:
CButton myButton;
myButton.Create(_T("My button"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10, 20, 100, 50), pmyCDialog, 1000);
那么,如何在不将它们定义为 CDialog 类成员的情况下创建动态控件呢?
"(我不能将它们定义为类成员,因为我不知道有多少!
您可以将 CButton 或 CButton* 的数组或向量创建为类成员。调用其 Create 时,为每个 ID 分配不同的 ID。
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 创建带有限幅器的步进器控件
- GLFW & ImGui:从 main 以外的线程创建 ImGui 控件
- 如何正确删除一行控件并在该位置动态创建一个新控件
- 将事件分配给在运行时动态创建的 VCL 控件
- 如何在列表控件中创建右键单击菜单
- 在 QT 中创建带有表单的控件时的递归构造函数调用
- 如何使用面向对象的技术在 win32 和 c++ 中创建编辑控件
- 创建独立控件Direct2D的好策略
- Windows 7:MFC ActiveX 控件不会在任何文件夹中创建文件
- C MFC创建编辑控件可以拥有的最大数字
- 在 c++ 中创建自定义控件时扩展控件
- 隐藏-在运行时c++中显示或创建控件
- 具有动态创建控件的MFC应用程序突然停止响应
- 在MFC表单中创建控件周围的边框
- MFC - 不直接创建控件
- 是否有可能在c++中创建控件并在Java活动中使用?
- 在 MFC 应用程序中动态创建控件