2

を介して取得できないフォームを含むプリンターを使用していますEnumFormsEnumFormsPrintServer からフォームを取得するだけです。DC_PAPERNAMESDeviceCapabilitiesパラメーターを使用して、設定する必要があるフォーム (スーパー ロング ペーパー) を取得します。

私はそのようにフォームを設定しようとしました

wcscpy(pDevMode->dmFormName, L"Super Long Paper");
pDevMode->dmFields |= DM_FORMNAME;
ResetDCW(hPrintDC, pDevMode);

これはうまくいきません。

を介して設定できるこの特定のフォームの値を取得することは可能ですpDevMode->dmPapersizeか、またはを使用してのみ表示されるフォームを設定する別のオプションがありますかDeviceCapabilities?

正しい方向へのあらゆるアドバイスをいただければ幸いです。

これは、Windows XP で動作する必要があります。

編集:

プログラムはダイアログを表示すべきではありません。コードを介して設定するすべてのもの。

4

1 に答える 1

2

解決策を見つけました。DeviceCapabilities3回電話する必要があります。で1DC_PAPERS回、 で 1 回、DC_PAPERNAMESで 1 回DC_PAPERSIZE。すべての呼び出しは、プリンターがサポートするフォームのフォーム名、サイズ、および番号 (DevMode で設定する) を含む配列を提供します。これらを使用して、DevMode のdmPaperSize,dmPaperLength anddmPaperWidth`Properties を設定できます。

于 2013-08-02T19:17:30.593 に答える