继承CFORMVIEW的DIALOG怎么初始化
时间: 2024-03-24 19:37:29 浏览: 95
继承 CFormView 的对话框的初始化可以通过以下步骤实现:
1. 在 CFormView 子类的头文件中添加以下构造函数声明:
```c++
public:
MyFormView();
```
2. 在 CFormView 子类的源文件中实现构造函数,调用 CFormView 构造函数并传递资源 ID。
```c++
MyFormView::MyFormView() : CFormView(IDD_MYFORMVIEW)
{
}
```
3. 在对话框类的源文件中实现 OnInitDialog 函数,并将其重写为以下形式:
```c++
BOOL MyDialog::OnInitDialog()
{
BOOL bResult = CDialog::OnInitDialog();
MYFORMVIEW.Create(IDD_MYFORMVIEW, this);
return bResult;
}
```
其中,MYFORMVIEW 是在对话框类的头文件中声明的 CFormView 子类对象。
4. 在对话框类的头文件中添加以下声明:
```c++
protected:
MyFormView MYFORMVIEW;
```
5. 在对话框类的 DoDataExchange 函数中添加以下代码:
```c++
DDX_Control(pDX, IDC_MYFORMVIEW, MYFORMVIEW);
```
其中,IDC_MYFORMVIEW 是包含 CFormView 子类的控件的 ID。
6. 在资源编辑器中添加一个 CFormView 对象,并设置其 ID。
7. 在对话框类的头文件中添加以下声明:
```c++
enum { IDD = IDD_MYDIALOG };
```
其中,IDD 是对话框的资源 ID。
完成上述步骤后,CFormView 子类就会被正确初始化,并显示在对话框中。
阅读全文