MFC对接对话框外/无CMainFrame

时间:2015-03-22 11:46:37

标签: c++ windows mfc

我已经用谷歌搜索过,我发现的所有文章都显示了在CMainFrame内部创建对接对话框。我希望/需要能够创建一个Popup对话框,它本身就是一个可停靠的对话框,因为我需要创建/添加大量对话框而不是CMainFrame。即

class CustomObjectClassDocking : public CFrameWndEx
{
    public:
    DECLARE_DYNAMIC(CustomObjectClassDocking)
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
}

int CustomObjectClassDocking::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    m_wndObjectPane.EnableDocking(CBRS_ALIGN_ANY);
    EnableDocking(CBRS_ALIGN_ANY);
    EnableAutoHidePanes(CBRS_ALIGN_ANY);
    DockPane(&m_wndObjectPane);
}


void StartCustomDockDlg
{
   CustomObjectClassDocking *pCustDock = new CustomObjectClassDocking();
   pCustDock->Create(/*what is suppose to go here?*/); //stuck here currently.
}

*类不必从CFrameWndEx继承,但确实需要可停靠。

有没有人有任何有用的例子,我可能会在哪些地方找到相关信息或我是如何做到的?

感谢。

1 个答案:

答案 0 :(得分:0)

经过一些更多的搜索/测试,找到了解决方案;

从上面开始;

void StartCustomDockDlg::StartCustomDockingDlg
{
    CRect wndRect;
    GetWindowRect(wndRect);
   CustomObjectClassDocking *pCustDock = new CustomObjectClassDocking();
   pCustDock->Create(NULL, NULL, WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME, wndRect, this);

}

以下帮助; C++ MFC Feature Pack --> Create multiple CDockablePanes onto an CDialog