如何将一个只有id 的Dialog存到CDialog的变量中
时间: 2024-03-22 15:42:35 浏览: 27
如果您想将一个只有id的Dialog对象存储到CDialog的变量中,您需要在CDialog类中定义一个成员变量来保存该对象。您可以使用指针类型的成员变量来保存该对象的地址。例如:
```c++
class CDialog {
private:
Dialog* m_pDialog; // 使用指针类型的成员变量来保存Dialog对象的地址
public:
void SetDialog(Dialog* pDialog) {
m_pDialog = pDialog;
}
};
```
在这个示例中,SetDialog方法接受一个指向Dialog对象的指针,并将其存储在m_pDialog成员变量中。如果您已经有一个只有id的Dialog对象,您可以使用DialogManager来获取该对象的指针,然后使用SetDialog方法将其存储在CDialog对象中。例如:
```c++
DialogManager dialogManager;
int dialogId = 123; // 假设这是一个只有id的Dialog对象
Dialog* pDialog = dialogManager.GetDialog(dialogId); // 获取Dialog对象的指针
CDialog cDialog;
cDialog.SetDialog(pDialog); // 将Dialog对象的指针存储在CDialog对象中
```
请注意,这只是一个示例,您需要根据您的具体情况进行调整。
相关问题
如何再用这个构造函数实现重新加载一个Dialog窗口
如果你想要重新加载一个Dialog窗口,可以使用以下步骤:
1. 释放原有的Dialog资源
在重新加载窗口之前,需要先释放原有的Dialog资源。可以使用以下代码:
```c++
if (m_hWnd != NULL)
{
DestroyWindow();
}
```
这里的m_hWnd是CDialog类的成员变量,用于保存Dialog窗口的句柄。如果这个变量不为NULL,则表示当前Dialog窗口已经创建,需要先销毁它。
2. 加载新的Dialog资源
释放原有的Dialog资源之后,就可以加载新的Dialog资源了。可以使用以下代码:
```c++
if (Create(IDD_DIALOG1, pParentWnd))
{
// 在这里进行额外的初始化工作
return TRUE;
}
return FALSE;
```
这里的IDD_DIALOG1是新的Dialog资源的ID,pParentWnd是父窗口的指针。如果Create函数返回TRUE,则表示新的Dialog窗口创建成功,可以进行额外的初始化工作。
需要注意的是,重新加载Dialog窗口会导致窗口的所有状态都被重置,包括控件的内容、位置和大小等。如果需要保留某些状态,需要在重新加载窗口之前将这些状态保存下来,并在重新加载窗口之后恢复它们。
VC++6.0中,如何为一个MFC工程添加一个新的窗口
1. 打开VC 6.0,选择File -> New -> MFC AppWizard(exe)。
2. 在AppWizard中,选择“Single Document”或“Multiple Documents”,点击Next。
3. 在下一步中,选择“Dialog Based”或“Form View”,点击Next。
4. 在下一步中,输入项目名称和保存路径,点击Next。
5. 在下一步中,选择“Create a new class”,并输入类名和基类,例如“CNewWindowDlg”和“CDialog”,点击Finish。
6. 在ClassView中,找到新创建的类,右键点击它,选择“Add” -> “Add Member Variable”。
7. 在对话框中,输入变量名称和控件类型,例如“m_edit”和“CEdit”,点击“OK”。
8. 在ClassView中,找到新创建的类,右键点击它,选择“Add” -> “Add Member Function”。
9. 在对话框中,输入函数名称和返回类型,例如“OnInitDialog”和“BOOL”,点击“OK”。
10. 在新创建的函数中,添加代码来初始化控件和设置窗口属性。
11. 在资源编辑器中,添加一个新的对话框,例如“IDD_NEW_WINDOW”。
12. 在ClassView中,找到新创建的类,右键点击它,选择“Add” -> “Add Function”。
13. 在对话框中,输入函数名称和返回类型,例如“OnNewWindow”和“void”,点击“OK”。
14. 在新创建的函数中,添加代码来创建并显示新的窗口。
15. 在消息映射中,添加一个新的消息处理函数,例如“ON_COMMAND(ID_NEW_WINDOW, OnNewWindow)”。
16. 编译和运行程序,点击菜单或按钮来显示新创建的窗口。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)