我有一个 MFC 应用程序,它是一个 Doc/View/Frame 实现。一个对话框作为无模式对话框运行,按需弹出(从菜单选项中)。我正在寻找将无模式对话框添加到 MDI 子视图。基本上,我想从资源文件中加载模板,并将其创建为我添加到 MDI 模板列表的新三重奏(doc/view/frame)中的 CView 的子级。
我在派生的 CMyView 类中尝试了一些东西:
void CMyView::OnInitialUpdate()
{
m_ListDialog = new Dialogs::CListDialog( m_config, this );
m_ListDialog->Create( Dialogs::CListDialog::IDD, this );
m_ListDialog->ShowWindow( SW_SHOW );
}
我试过调用 SetWindowPos、ModifyStyle(WS_CHILD、WS_VISIBLE、DS_CONTROL)。我尝试修改资源文件以手动设置子项和控件。
每次调用 Create 时,ListDialog 的 m_hWnd 都保留为 0。这告诉我它没有正确创建。对 SetWindowPos() 或 ShowWindow() 的任何调用都会失败,因为 m_hWnd 为 0(调试断言失败)。
我需要做什么才能在我的 MDI 应用程序中构建、创建和显示为 CMyView 的子项的无模式对话框?