Last Updated 2002/09/13
Programming Tips Visual C++ MFC 印刷  索 引 
用紙サイズの反映
2002/09/13

CPrintDialog dlg(TRUE);
dlg.GetDefaults();      
LPDEVMODE devmode = dlg.GetDevMode();

上記で取得した LPDEVMODE の dmPaperSize はファイル−プリンタの設定−用紙サイズ にて選択した用紙サイズと一致しない.
用紙サイズを変更しても dmPaperSize に反映されない.

    PRINTDLG pd;
    pd.hDevNames = NULL;
    pd.hDevMode = NULL;
    AfxGetApp()->GetPrinterDeviceDefaults(&pd);

上記で取得した pd.hDevMode が一致するはず.
設定には CWinApp::SelectPrinter() を使用する.


用紙を変更するには以下で行う.

PRINTDLG    pd;

AfxGetApp()->GetPrinterDeviceDefaults( &pd );
DEVMODE *pDevMode = (DEVMODE *)GlobalLock( pd.hDevMode );
    ....
pDevMode->dmPaperSize = DMPAPER_A3;
    ....
GlobalUnlock( pd.hDevMode );
    ....


参照
用紙サイズの変更
用紙サイズ変更後 用紙サイズ取得
プリンタの設定
給紙方法の設定
前後のTips
用紙サイズの反映

DSS ProgrammingTipsCGI Ver2.02