アプリからプリンターを変更したときに、CPrintDialogのプロパティを変更したい。
カスタムCPrintDialogのOnInitDialog()でプリンター名を設定しました。
CComboBox *wndCmbBox = (CComboBox *)GetDlgItem( IDC_PER_USER );
if( wndCmbBox != NULL )
{
wndCmbBox->SelectString( -1, s_PrinterName);
}
問題は、プリンタ名はコンボボックスで設定できますが、そのプロパティは設定されないことです。つまり、プリンタのステータス、タイプなどです。デフォルトでは、デフォルトのプリンタのプロパティが設定されています。だから、その対立。
ただし、CPrintDialogのコンボボックスからプリンターを変更すると、プリンターの選択に従ってそのプロパティが自動的に変更されます。
私はまだどこからでも解決策を見つけることができません。添付の画像を参考にしてください。
編集 codyが提案するように、アプリから選択したプリンターに従ってプリンターを変更できます。[印刷]コマンドを適用しても、選択したプリンターから印刷が行われます。これはすべてうまくいきましたが、これは問題ではありません。問題は、初めて[印刷]ダイアログを開いたとき、そのプロパティは選択したプリンターと一致しません。プリンターが私のアプリから[デフォルトのプリンター]以外で選択されている場合。