C++ 如何在CFramewnd MFC中创建停靠平面窗口

C++ 如何在CFramewnd MFC中创建停靠平面窗口,c++,visual-c++,mfc,C++,Visual C++,Mfc,我已在CMainFrame on OnCreate message中创建了一个CDockablePane窗口,如下所示: int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWndEx::OnCreate(lpCreateStruct) == -1) return -1; //.........................some other code here BOO

我已在CMainFrame on OnCreate message中创建了一个CDockablePane窗口,如下所示:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
        return -1;
    //.........................some other code here
    BOOL bNameValid;
    CString strLoginPageWnd;
    bNameValid = strLoginPageWnd.LoadString(IDS_LOGINPAGE_WND);
    ASSERT(bNameValid);

    if (!m_wndLoginPage.Create(strLoginPageWnd, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_LOGINPAGEWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | CBRS_TOP | CBRS_FLOAT_MULTI))
    {
        TRACE0("Failed to create LoginPage window\n");
        return -1; // failed to create
    }

    m_wndLoginPage.EnableDocking(CBRS_ALIGN_ANY);
    DockPane(&m_wndLoginPage);

//..............................Some other code here

    return 0;
}
m_wndLoginPage是CDockablePane窗口类对象上的一个对象。因此,它工作正常,窗口显示正确,如下所示:

因此,我想在单击Login按钮后,显示另一个类似LoginWindow的CDockablePane窗口,该名称应显示在工具栏和停靠窗口中,与Login窗口相同。我试图在事件处理程序中添加以下代码,但它不起作用:

BOOL bNameValid;
CString strLoginPageWnd2;
bNameValid = strLoginPageWnd2.LoadString(IDS_LOGINPAGE_WND2);
ASSERT(bNameValid);

CMainFrame *pMainWnd = (CMainFrame *)AfxGetMainWnd();
if (!m_wndLoginPage2.Create(strLoginPageWnd2, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_LOGINPAGEWND2, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | CBRS_TOP | CBRS_FLOAT_MULTI))
{
  TRACE0("Failed to create LoginPage window\n");
  return -1; // failed to create
}

m_wndLoginPage2.EnableDocking(CBRS_ALIGN_ANY);
pMainWnd->DockPane(&m_wndLoginPage2);

有人能帮我创建另一个CDockablePane窗口并将其连接到CMInframe吗?

您需要自己动手。第一步:给自己找一份杰夫·普洛塞斯的。什么不起作用
m_wndLoginPage1
m_wndLoginPage2
?您是否在调用
Create
时进入?您的rc资源文件中是否定义了
对话框ID\u VIEW\u LOGINPAGEWND2
?您需要帮助自己。第一步:给自己找一份杰夫·普洛塞斯的。什么不起作用
m_wndLoginPage1
m_wndLoginPage2
?您是否在调用
Create
时进入?您的rc资源文件中是否定义了
对话框ID\u VIEW\u LOGINPAGEWND2