PRINTDLGEXA 结构是 Windows 操作系统中用于设置和检索打印对话框参数的扩展 ANSI 版本的结构。以下是 PRINTDLGEXA 结构的定义:
typedef struct tagPDEXA {
  DWORD                 lStructSize;
  HWND                  hwndOwner;
  HGLOBAL               hDevMode;
  HGLOBAL               hDevNames;
  HDC                   hDC;
  DWORD                 Flags;
  DWORD                 Flags2;
  DWORD                 ExclusionFlags;
  DWORD                 nPageRanges;
  DWORD                 nMaxPageRanges;
  LPPRINTPAGERANGE      lpPageRanges;
  DWORD                 nMinPage;
  DWORD                 nMaxPage;
  DWORD                 nCopies;
  HINSTANCE             hInstance;
  LPCSTR                lpPrintTemplateName;
  LPARAM                lpCallback;
  DWORD                 nPropertyPages;
  HPROPSHEETPAGE*       lphPropertyPages;
  DWORD                 nStartPage;
  DWORD                 dwResultAction;
} PRINTDLGEXA, *LPPRINTDLGEXA;

这个结构用于向打印对话框传递参数,然后通过调用 PrintDlgEx 函数显示对话框,用户可以设置打印的各种参数。

以下是结构的各个成员的说明:

  •  lStructSize: 结构的大小,以字节为单位,用于指定结构的大小。在调用 PrintDlgEx 函数之前,必须将此字段设置为结构的大小,通常使用 sizeof(PRINTDLGEXA)。


  •  hwndOwner: 拥有对话框的窗口的句柄。


  •  hDevMode: 一个全局内存句柄,指向一个 DEVMODE 结构,其中包含设备模式信息。


  •  hDevNames: 一个全局内存句柄,指向一个 DEVNAMES 结构,其中包含设备名称信息。


  •  hDC: 打印对话框使用的设备上下文句柄。


  •  Flags: 用于设置对话框的标志,例如是否显示“帮助”按钮等。


  •  Flags2: 用于设置对话框的额外标志。


  •  ExclusionFlags: 用于设置对话框的排除标志。


  •  nPageRanges: 用户选择的打印页范围的数量。


  •  nMaxPageRanges: 打印页范围的最大数量。


  •  lpPageRanges: 一个指向 PRINTPAGERANGE 结构数组的指针,指定用户选择的打印页范围。


  •  nMinPage, nMaxPage: 可以打印的页范围的最小和最大值。


  •  nCopies: 打印份数。


  •  hInstance: 应用程序实例的句柄。


  •  lpPrintTemplateName: 打印对话框模板的名称。


  •  lpCallback: 一个指向打印对话框回调函数的指针。


  •  nPropertyPages: 属性页的数量。


  •  lphPropertyPages: 一个指向属性页数组的指针。


  •  nStartPage: 对话框应该显示的起始页。


  •  dwResultAction: 返回用户在对话框中执行的操作。


请注意,如果你的应用程序使用 Unicode 字符串,应使用 PRINTDLGEXW 结构,以便支持 Unicode 版本的对话框。


转载请注明出处:http://www.zyzy.cn/article/detail/25036/Win32 API/Commdlg.h/PRINTDLGEXA