为什么我设置了打印机为横向打印,打印出来的图像还是不是横过来的啊?    // TODO: 在此添加控件通知处理程序代码
    Lock();
   CPrintDialog dlg(FALSE,PD_PAGENUMS);     //定义打印机
   dlg.GetDefaults();
   dlg.m_nFlags = PD_RETURNDC|PD_PRINTSETUP;
   //设置横向打印和纸张类型
   CPrintInfo   printInfo; 
   ASSERT(printInfo.m_pPD   !=   NULL);         //   must   be   set    if   (LOWORD(GetCurrentMessage()-> wParam)   ==   ID_FILE_PRINT_DIRECT) 
   { 
   CCommandLineInfo*   pCmdInfo   =   AfxGetApp()-> m_pCmdInfo;     if   (pCmdInfo!=   NULL) 
   { 
   if   (pCmdInfo-> m_nShellCommand   ==   CCommandLineInfo::FilePrintTo) 
   { 
   printInfo.m_pPD-> m_pd.hDC   =   ::CreateDC(pCmdInfo-> m_strDriverName, 
   pCmdInfo-> m_strPrinterName,   pCmdInfo-> m_strPortName,   NULL); 
   if   (printInfo.m_pPD-> m_pd.hDC   ==   NULL) 
   { 
   AfxMessageBox(AFX_IDP_FAILED_TO_START_PRINT); 
   return; 
   }     } 
   }     printInfo.m_bDirect   =   TRUE; 
   }    LPDEVMODE   lpDevMode;
   //dlg = printInfo.m_pPD->m_pd;
   if(AfxGetApp()->GetPrinterDeviceDefaults(&dlg.m_pd))
   {
   lpDevMode=(LPDEVMODE)GlobalLock(dlg.m_pd.hDevMode);
   if(lpDevMode)
   {
   lpDevMode->dmPaperSize=DMPAPER_A4;
   lpDevMode->dmOrientation=DMORIENT_LANDSCAPE;
   }
   GlobalUnlock(dlg.m_pd.hDevMode);
   }

   HDC hdcPrinter = dlg.GetPrinterDC();       //获得打印机的句柄   if (hdcPrinter == NULL)
   {
      MessageBox(_T("Buy a printer!"));
   }
CDC printcd;
printcd.Attach(hdcPrinter);

DOCINFO pdoc;//打印属性
memset(&pdoc, 0, sizeof(pdoc));
pdoc.lpszDocName=L"pdoc";
pdoc.cbSize=sizeof(pdoc);

if (printcd.StartDoc(&pdoc) < 0)
{
MessageBox(_T("Printer wouldn't initalize"));
}
else   
{
// start a page
if (printcd.StartPage() < 0)
{
MessageBox(_T("Could not start page"));
printcd.AbortDoc();
}
else
{
SaveBitmapToFile();
PrintBitmap(&printcd);
printcd.EndPage(); //结束这页 
printcd.EndDoc();
}
}
 LPDEVMODE   lpDevMode1 = dlg.GetDevMode();
if(printInfo.m_pPD-> m_pd.hDC)
{
DeleteDC(printInfo.m_pPD-> m_pd.hDC);
}
printcd.Detach();//释放对象
printcd.DeleteDC();//释放设备
UnLock();