mfc对话框样式设置为child后窗口不显示了
时间: 2023-11-27 19:50:01 浏览: 188
MFC 对话框样式设置为 Child 后,需要将它作为父窗口的一个子窗口来显示。如果你的窗口设置为 Child 后窗口不显示,可能是因为你没有将它与父窗口进行关联。
你可以在父窗口的 OnInitDialog 函数中添加以下代码来将对话框作为子窗口添加到父窗口中:
```
BOOL CMyParentDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 创建子对话框
CMyChildDlg* pChildDlg = new CMyChildDlg(this);
pChildDlg->Create(IDD_MYCHILDDLG, this);
pChildDlg->ShowWindow(SW_SHOW);
return TRUE;
}
```
在这里,我们创建了一个 CMyChildDlg 对象,并将它的样式设置为 Child,然后将它作为子窗口添加到父窗口中。
注意,这里的 CMyParentDlg 是你的父窗口类名,CMyChildDlg 是你的子窗口类名。你需要根据自己的情况修改代码中的类名和对话框 ID。
另外,如果你的子对话框中有控件需要响应消息,你还需要在父窗口类中添加以下函数:
```
BOOL CMyParentDlg::PreTranslateMessage(MSG* pMsg)
{
// 将消息传递给子对话框
if (m_pChildDlg && m_pChildDlg->GetSafeHwnd())
{
if (::IsDialogMessage(m_pChildDlg->GetSafeHwnd(), pMsg))
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
```
在这里,我们将消息传递给子对话框,以便它可以响应消息。注意,这里的 m_pChildDlg 是你创建的子对话框的指针。
阅读全文