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 );
....
参照
用紙サイズの変更
用紙サイズ変更後 用紙サイズ取得
プリンタの設定
給紙方法の設定