我已经用谷歌搜索过,我发现的所有文章都显示了在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继承,但确实需要可停靠。
有没有人有任何有用的例子,我可能会在哪些地方找到相关信息或我是如何做到的?
感谢。
答案 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