继承Cformview 的DIALOG如何初始化调整大小
时间: 2024-03-24 22:40:48 浏览: 28
要初始化调整大小继承自CFormView的对话框,您可以使用以下步骤:
1. 在您的对话框类的OnInitDialog函数中,添加以下代码:
```cpp
CRect rect;
GetClientRect(&rect);
CalcWindowRect(&rect);
SetWindowPos(NULL, 0, 0, rect.Width(), rect.Height(), SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
```
2. 在您的对话框类的OnSize函数中,添加以下代码:
```cpp
CRect rect;
GetClientRect(&rect);
CalcWindowRect(&rect);
SetWindowPos(NULL, 0, 0, rect.Width(), rect.Height(), SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
```
这些代码将根据您的对话框的客户区大小计算窗口框架的大小,并将窗口重新定位和调整大小。这将确保您的对话框在初始化和调整大小时总是正确的大小。
相关问题
继承CFORMVIEW的DIALOG怎么初始化
继承 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 子类就会被正确初始化,并显示在对话框中。
Cformview初始化时在哪个函数里加载dialog的
CFormView初始化时在`OnInitialUpdate`函数里加载dialog。`OnInitialUpdate`函数是在CFormView对象初始化完成后第一次显示视图前被自动调用的。在该函数中可以进行控件的初始化、数据的加载等操作。同时,在该函数中也可以通过GetDlgItem函数获取到视图上的控件句柄,并进行控件的设置。