BOOL CMyFormView::OnInitDialog() 没有这个函数
时间: 2024-03-26 14:35:33 浏览: 56
非常抱歉,我的回答有误。CFormView 没有 OnInitDialog 函数,它是 CDialog 类的成员函数。我混淆了两个不同的类。
在 CFormView 中,您可以在 OnInitialUpdate 函数中设置对话框的大小和位置。下面是示例代码:
```
void CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// 获取视图的客户区矩形
CRect rcClient;
GetClientRect(&rcClient);
// 获取对话框的客户区矩形
CRect rcDialog;
GetDlgItem(IDC_STATIC)->GetWindowRect(&rcDialog);
ScreenToClient(&rcDialog);
// 计算对话框的位置和大小
int cx = rcClient.Width() - rcDialog.Width();
int cy = rcClient.Height() - rcDialog.Height();
rcDialog.OffsetRect(cx / 2, cy / 2);
rcDialog.right += cx;
rcDialog.bottom += cy;
// 设置对话框的位置和大小
GetDlgItem(IDC_STATIC)->MoveWindow(&rcDialog);
}
```
在上面的示例代码中,IDC_STATIC 是对话框中一个控件的 ID,您可以根据实际情况修改。
希望这次回答可以解决您的问题,如果还有疑问,请随时提出。
阅读全文