> ・・・自分のプログラムでわざわざ再設定する必要はないんですって。
> ・・・余計なことはせずに必要な設定以外はほっとけばいいんですよ。
なら、よかった (^o^)
lp->dmOrientation = DMORIENT_PORTRAIT; を入れているのは、他のメニューで横向き印
刷をするので、そこからこっちに切り替えたとき必要なもんで・・・。
> あとゲキアツさん、意外とIDEのデバッグ機能とか苦手ですか?
Yes, I am. So sorry! (^_^;)
ユーザーAさんからの連絡がまだありません。
自分はこれから1週間留守するので、ここは保留とさせて戴きます。
留守をして済みませんでした。
端的に注釈を付けたサンプルページがありました。こちらです。
http://www.codeproject.com/Articles/132365/Configuring-Printer-Settings-Programm
atically
多くのサンプルでは dmFields = ○○○; となっているのに、ここでは ken様がおっしゃ
るように dmFields |= ○○○; となっています。
これをお手本にしました。以下のコードとなります。
::OnPreparePrinting(CPrintInfo* pInfo)
{
PRINTDLG pd;
pd.lStructSize = (DWORD)sizeof(PRINTDLG);
if (AfxGetApp()->GetPrinterDeviceDefaults(&pd))
{
LPDEVMODE lp = (LPDEVMODE)GlobalLock(pd.hDevMode);
if (lp->dmFields & DM_ORIENTATION)
{
lp->dmOrientation |= DMORIENT_PORTRAIT;
lp->dmFields = DM_ORIENTATION;
}
if (・・・)
{
if (lp->dmFields & DM_PAPERSIZE)
{
lp->dmPaperSize = DMPAPER_USER;
lp->dmFields |= DM_PAPERSIZE;
if (lp->dmFields & DM_PAPERWIDTH)
{
lp->dmPaperWidth = 1200;
lp->dmFields |= DM_PAPERWIDTH;
}
if (lp->dmFields & DM_PAPERLENGTH)
{
lp->dmPaperLength = 2350;
lp->dmFields |= DM_PAPERLENGTH;
}
}
}
これで、ユーザーAさんにテストして戴き、問題なく印刷できたとのこと。
解決です。
教えて戴いた皆様、ありがとうございました。