win32 C++ 打印 PRINTDLGEX 未声明?

Posted

技术标签:

【中文标题】win32 C++ 打印 PRINTDLGEX 未声明?【英文标题】:win32 C++ printing PRINTDLGEX not declared? 【发布时间】:2009-01-19 07:01:24 【问题描述】:

我想弄清楚如何用 C++ 打印。我想使用 PrintDlgEx 函数获取设备上下文,该函数需要 PRINTDLGEX 结构。但是,我无法创建 PRINTDLGEX,因为它说它未声明。我已经包含了 Commdlg.h 和 Windows.h 并链接了 Comdlg32.lib,但都无济于事。有什么我想念的吗?我可以进入 Commdlg 头文件并看到 PRINTDLGEX 已声明,但由于某种原因我不能使用它?我的操作系统是 Window Vista。

【问题讨论】:

【参考方案1】:

它可能未声明,因为它位于从 Commdlg.h 的第 878 行开始的 #ifdef STDMETHOD 块中

STDMETHOD 定义在basetyps.h

这篇 Customizing PrintDlgEx and IPrintDialogCallback 的帖子也可能有用。

【讨论】:

【参考方案2】:

您需要声明您的目标 Windows 版本足够现代以支持该结构,默认值假定一些古老的东西。通常这将在您的stdafx.h 文件中完成。这些定义必须在 Windows 头文件的包含之前。

#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
#define _WIN32_IE 0x0501

【讨论】:

以上是关于win32 C++ 打印 PRINTDLGEX 未声明?的主要内容,如果未能解决你的问题,请参考以下文章

Win32 PrintDlg、PrintDlgEx、崩溃和古怪

位图未在 Win32 C++ 中绘制

Win32 GUI c++ .bmp 图像未显示

WMI Win32_Printer 未显示在 =>控制面板\所有控制面板项\设备和打印机中

C++ Win32api 从用户输入输出 Unicode

短未正确打印c ++