我用的是xp ,安装了如下的打印机:1、Microsoft Office Document Image Writer2、Microsoft XPS Document Writer用记事本测试这2个打印机 一切正常,打印的内容保存在文件中,打开文件就能看到打印效果。但我写的打印程序就不能正常工作,代码如下:PRINTDLG pd;
HWND hwnd = hwnd44;
// Initialize PRINTDLG   初始化 结构 pd
ZeroMemory(&pd, sizeof(pd));  //先将该内存块清为0
pd.lStructSize = sizeof(pd);
pd.hwndOwner   = hwnd; 
pd.hDevMode    = NULL;     // Don't forget to free or store hDevMode
pd.hDevNames   = NULL;     // Don't forget to free or store hDevNames
pd.Flags       = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC ; pd.nCopies     = 1;
pd.nFromPage   = 0xFFFF; 
pd.nToPage     = 0xFFFF; 
pd.nMinPage    = 1; 
pd.nMaxPage    = 0xFFFF; if (PrintDlg(&pd)==TRUE) 
{
    // GDI calls to render output. BOOL r = Rectangle(pd.hDC,10,10,110,110);  
 if(!r) Beep(1000,1000);
    // Delete DC when done.
    DeleteDC(pd.hDC);
}代码都能成功执行,但就是看不到弹出让我保存文件的对话框,好像根本就没有执行打印请高手们看看原因啊

解决方案 »

  1.   

    GetLastError()看看是什么错误代码
      

  2.   

    好像没有看到你的BeginDoc 和 EndDoc 操作啊// Get a device context for the printer.
    HDC hdcPrint = CreateDC(NULL, TEXT("\\\\printserver\\print1"), NULL, NULL);DOCINFO docInfo;
    ZeroMemory(&docInfo, sizeof(docInfo));
    docInfo.cbSize = sizeof(docInfo);
    docInfo.lpszDocName = "GdiplusPrint";StartDoc(hdcPrint, &docInfo);<----------------------
    StartPage(hdcPrint);<------------------------------EndPage(hdcPrint);<--------------
    EndDoc(hdcPrint);<-------------------
    DeleteDC(hdcPrint);
      

  3.   

    先谢谢 4楼的Saimen朋友,我先测试一下
      

  4.   

    如果是对话框程序打印的话看下这个例子http://www.vckbase.com/document/viewdoc/?id=1618单文档的话直接在View类上画就可以打印了
      

  5.   

    再次感谢4楼的Saimen朋友,都怪自己保存了一份没有测试成功的代码,
    时间一长,
    还以为那是正确的代码呢,谢谢