MFC 停靠对话框 outside/without CMainFrame
MFC Docking Dialog outside/without CMainFrame
我已经用谷歌搜索,我发现的所有文章都显示在 CMainFrame 本身内部创建停靠对话框。我 want/need 能够创建一个 Popup 对话框,它本身就是一个可停靠对话框,因为我需要 create/add 多个对话框而不是 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.
}
*Class 不必继承自 CFrameWndEx,但需要可停靠。
有没有人有任何工作示例,我可以在哪里找到相关信息或我将如何处理?
谢谢。
经过一番searching/testing,找到了解决方案;
从上面;
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
我已经用谷歌搜索,我发现的所有文章都显示在 CMainFrame 本身内部创建停靠对话框。我 want/need 能够创建一个 Popup 对话框,它本身就是一个可停靠对话框,因为我需要 create/add 多个对话框而不是 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.
}
*Class 不必继承自 CFrameWndEx,但需要可停靠。
有没有人有任何工作示例,我可以在哪里找到相关信息或我将如何处理?
谢谢。
经过一番searching/testing,找到了解决方案;
从上面;
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