横向打印,调用Printdlg 打印对话框,每次手工设置横向,比较麻烦,
而且有时候打印机还不响应横向;
可否设置某个参数,默认成横向打印的,谢谢。

解决方案 »

  1.   


    /*  设置系统打印模式                
    #define  DMORIENT_PORTRAIT      1      //纵向  
    #define  DMORIENT_LANDSCAPE    2      //横向                                                                            */  
    /************************************************************************/  
     
    void  SetLandscapeMode(int  PrintMode)  
    {  
               PRINTDLG  pd;  
               pd.lStructSize=(DWORD)sizeof(PRINTDLG);  
               BOOL  bRet=AfxGetApp()->GetPrinterDeviceDefaults(&pd);  
               if(bRet)  
               {  
                           //  protect  memory  handle  with  ::GlobalLock  and  ::GlobalUnlock  
                           DEVMODE  FAR  *pDevMode=(DEVMODE  FAR  *)::GlobalLock(pd.hDevMode);  
                           //  set  orientation  to  landscape  
                           if(PrintMode==1)//纵向打印  
                                       pDevMode->dmOrientation=DMORIENT_PORTRAIT;  
                           else  if(PrintMode==2)//横向打印  
                                       pDevMode->dmOrientation=DMORIENT_LANDSCAPE;                  
                           ::GlobalUnlock(pd.hDevMode);  
               }  
    }              
      

  2.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=186073
      

  3.   

    laiyiling(【陌生人 V2.0】) ,谢谢,^_^,我发了很长时间查msdn没找到,没想到我刚一贴出来,你就告诉了我,谢谢。
    揭帖,^_^