我发现单文档多视图的情况下只有向导生成的哪个view有打印预览功能,我自己生成的view,切换到前面显示的时候,打印预览那些都不能用,怎么样才能使自己新建的比如继承自cview的视图能在切换到前面显示的时候能支持预览和打印呢?

解决方案 »

  1.   

    SendMessage(WM_COMMAND,ID_FILE_PRINT_PREVIEW);
    SendMessage(WM_COMMAND,ID_FILE_PRINT);
      

  2.   

    1.添加Menu
    ID_FILE_PRINT ID_FILE_PRINT_PREVIEW 等
    2.添加函数
    virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
    virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
    virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
    及实现BOOL CMdiView::OnPreparePrinting(CPrintInfo* pInfo)
    {
    // default preparation
    return DoPreparePrinting(pInfo);
    }void CMdiView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
    {
    // TODO: add extra initialization before printing
    }void CMdiView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
    {
    // TODO: add cleanup after printing
    }
    3.关联映射
    ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
    ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
      

  3.   

    #include "l.chs\afxprint.rc"        // printing/print preview resources