话说,解决了 另存为对话位置 的帖子,不应该再踢类似问题了,
但是,但是,我发现,打印对话框的弹出的方法不一样,所以,只好再开贴了。BOOL CPrintView::OnPreparePrinting(CPrintInfo* pInfo)
{
if(DoPreparePrinting(pInfo))  //词句就是打印对话框
{
return TRUE;
}

else
{
GetParent()->DestroyWindow();
return FALSE;
}
}弹出的也是模式的,请问,如果修改对话框的位置呢?高手顶进!

解决方案 »

  1.   

    UINT CALLBACK SetupHookProc(
      HWND hdlg,      // handle to the dialog box window
      UINT uiMsg,     // message identifier
      WPARAM wParam,  // message parameter
      LPARAM lParam   // message parameter
    )
    {
    if (uiMsg==WM_INITDIALOG)
    {
    //::MessageBox(NULL,"Dd",NULL,0);
    ::MoveWindow(hdlg,100,0,300,400,FALSE);
    }
       return 0l;
    }BOOL CPrintView::OnPreparePrinting(CPrintInfo* pInfo)
    {
    pInfo->m_pPD->m_pd.Flags=PD_ENABLEPRINTHOOK;
    pInfo->m_pPD->m_pd.lpfnPrintHook=SetupHookProc;
    if(DoPreparePrinting(pInfo))  //词句就是打印对话框 

    return TRUE; 
    } else 

    GetParent()->DestroyWindow(); 
    return FALSE; 

    }
      

  2.   

    pInfo->m_pPD 指向 CPrintDialog类,即将要显示的对话框。
      

  3.   

    [color=#FF0000]高手继续顶进,钩子程序没有进去啊![/color]
      

  4.   

    你看看DoPreparePrinting(pInfo)函数的源码,看看能不能改造成自己的函数,调用之
      

  5.   


    void CPrintView::PrinterPreview()
    {
    GetParent()->ShowWindow(SW_SHOW);
    GetParent()->MoveWindow(100,100,100,100);
    CView::OnFilePrintPreview();
    }
      

  6.   

    UINT CALLBACK SetupHookProc( 
      HWND hdlg,      // handle to the dialog box window 
      UINT uiMsg,    // message identifier 
      WPARAM wParam,  // message parameter 
      LPARAM lParam  // message parameter 


    if (uiMsg==WM_INITDIALOG) 

    //::MessageBox(NULL,"Dd",NULL,0); 
    ::MoveWindow(hdlg,100,0,300,400,FALSE); 

      return 0l; 
    } BOOL CPrintView::OnPreparePrinting(CPrintInfo* pInfo) 

    pInfo->m_pPD->m_pd.Flags=PD_ENABLEPRINTHOOK; 
    pInfo->m_pPD->m_pd.lpfnPrintHook=SetupHookProc; 
    if(DoPreparePrinting(pInfo))  //词句就是打印对话框 

    return TRUE; 
    } else 

    GetParent()->DestroyWindow(); 
    return FALSE; 

    }
      

  7.   

    继续定  往死里顶!顺便说下,16#的方法没有用,DoPreparePrinting(pInfo)里起不了作用的!
      

  8.   

    pInfo->m_pPD 指向 CPrintDialog类,即将要显示的对话框。