关于CDialogBar的隐藏于显示

来源:互联网 发布:淘宝开店怎么注册店铺 编辑:程序博客网 时间:2024/04/30 20:24

两个CDialogBar在CMainFrame的头文件里加入变量

 CMyDialogBar    m_bar;
 CMyDialogBar1  m_bar1;

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

//...

...

  CXTPDockingPane* pwndpane1 = m_paneManager.CreatePane(

          IDD_DIALOG,CRect(0,0,200,75),xtpPaneDockLeft);

  CXTPDockingPane* pwndPane2 = m_paneManager.CreatePane(

         IDD_DIALOG1,CRect(0,0,200,100),xtpPaneDockBottom, pwndpane1);

return 0;

}

 

添加ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)

LRESULT CMainFrame::OnDockingPaneNotify(WPARAM wParam, LPARAM lParam)
{
 if (wParam == XTP_DPN_SHOWWINDOW)
 {
  CXTPDockingPane* pPane = (CXTPDockingPane*)lParam;

   if (!pPane->IsValid())
   {
   switch (pPane->GetID())
   {

     case IDD_DIALOG:
    {
     if(m_bar.GetSafeHwnd()==0)
     {
      m_bar.Create(this,IDD_DIALOG,CBRS_LEFT|CBRS_TOOLTIPS|CBRS_FLYBY, IDD_DIALOG);
     }
     pPane->Attach(&m_bar);
     break;
    }
   case IDD_DIALOG1:
    {
     if(m_bar1.GetSafeHwnd()==0)
     {
      m_bar1.Create(this,IDD_DIALOG1,CBRS_LEFT|CBRS_TOOLTIPS|CBRS_FLYBY, IDD_DIALOG1);
     }
     pPane->Attach(&m_bar1);
     break;
    }
   }
  }
  return TRUE;
 }
 return FALSE;
}

如此就实现了CDialogBar在文档的左边的显示和隐藏

也可以在OnCreate的后面加入:CXTPDockingPaneLayout

CXTPDockingPane* pwndpane1 = m_paneManager.CreatePane(

          IDD_DIALOG,CRect(0,0,200,75),xtpPaneDockLeft);

CXTPDockingPane* pwndPane2 = m_paneManager.CreatePane(

         IDD_DIALOG1,CRect(0,0,200,100),xtpPaneDockBottom, pwndpane1);

 

CXTPDockingPaneLayout layoutNormal(&m_paneManager);
  if (layoutNormal.Load(_T("NormalLayout")))
  {
   m_paneManager.SetLayout(&layoutNormal);
   }

 

 

原创粉丝点击