如题

解决方案 »

  1.   

    下面是我摘录CSDN的网友:http://expert.csdn.net/Expert/topic/1923/1923382.xml?temp=.5468866CPrintDialog mypd(0); // 构造打印设置对话框对象,但不显示
    mypd.GetDefaults();           // 检取缺省打印设备的设备环境
    DEVMODE * dm = mypd.GetDevMode(); // 提取缺省打印机的DEVMODE数据
    dm->dmPaperLength = printhigh; // 定义纸张长度
    dm->dmPaperWidth = printwidth; // 定义纸张宽度
    下面是SDK的:PAGESETUPDLG psd;    // common dialog box structure
    HWND hwnd;           // owner windowZeroMemory(&psd, sizeof(PAGESETUPDLG));
    psd.lStructSize = sizeof(PAGESETUPDLG);
    psd.hwndOwner   = hwnd;
    psd.hDevMode    = NULL; // Don't forget to free or store hDevMode.
    psd.hDevNames   = NULL; // Don't forget to free or store
                      hDevNames.
    psd.Flags       = PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS | 
                      PSD_ENABLEPAGEPAINTHOOK; 
    psd.rtMargin.top = 1000;
    psd.rtMargin.left = 1250;
    psd.rtMargin.right = 1250;
    psd.rtMargin.bottom = 1000;
    psd.lpfnPagePaintHook = PaintHook;if (PageSetupDlg(&psd)==TRUE) {
        // check paper size and margin values here
    }
      

  2.   

    to flinming(flinming)
        你说得对,我是为了适应不同的打印机,但是用其他模式的话,有的打印机能打印出图片(但图片是上下左右倒过来的),有的却打印不出来。应该如何解决呢?
      

  3.   

    用默认模式的时候,打印图片的语句是:
        pdc->BitBlt(20,20,5000 ,2500 ,&dc,0,0,SRCCOPY);如果是用MM_HIMETRIC(0.01mm)模式的时候,语句应该怎样改呢?是不是:
        pdc->BitBlt(20,-20,5000 ,2500 ,&dc,0,0,SRCCOPY)请各位高手指点指点