我想固定停靠,但是一固定,打印预览中就多出来这个CDialogBar对像。我做了一个class CMeasureDlg : public CDialogBar
CMeasureDlg m_wndMyDialogBar;我想让他固定停靠在工具条图标的下面,不能移动,我
在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)中建立实例,
为了让他固定停靠,我去掉了下面的话,发现在主界面上倒是实现了固定停靠,但是我在点击打印预览命令时,发现m_wndMyDialogBar竟然出现在打印预览窗口中了。
m_wndMyDialogBar.EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndMyDialogBar);

解决方案 »

  1.   

    另外,我建立的一个滑动条,因为我的固定停靠的改动,也出现在打印预览窗口了,郁闷
    m_SliderCtrl.Create(WS_CHILD | WS_VISIBLE | CBRS_TOP|TBS_HORZ,rect,this,IDC_SLIDER);
    m_SliderCtrl.SetRange(0,1000,true);
    m_SliderCtrl.SetPageSize(1);
      

  2.   

    if (!m_wndMyDialogBar.Create(this, CG_IDD_MYDIALOGBAR,
    CBRS_TOP | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,
    CG_ID_VIEW_MYDIALOGBAR))
    {
    TRACE0("Failed to create dialog bar m_wndMyDialogBar\n");
    return -1; // fail to create
    }
      

  3.   

     if(m_wndMyDialogBar.IsWindowVisible())
     {
        m_wndMyDialogBar.ShowWindow(SW_HIDE);
     }
      

  4.   


    dialog bar一般要让framewnd来show, hide
      

  5.   

    1、调用打印预览前隐藏
    CMainFrame   *pMain=(CMainFrame   *)AfxGetApp()->m_pMainWnd;   
         if(pMain->m_wndMyDialogBar.IsWindowVisible()) //隐藏CDialogbar

    pMain->m_wndMyDialogBar.ShowWindow(SW_HIDE); 

    2、调用打印结束后重新显示。
    void CYouView::OnYouPrintPreview()
    {
    CView::OnFilePrintPreview();
    CMainFrame   *pMain=(CMainFrame   *)AfxGetApp()->m_pMainWnd;   
    if(!pMain->m_wndMyDialogBar.IsWindowVisible()) //调用打印预览后,重新显示CDialogbar

    pMain->m_wndMyDialogBar.ShowWindow(SW_SHOW); 

    }