win32 C ++打印PRINTDLGEX没有声明?

时间:2009-01-19 07:01:24

标签: c++ winapi printing

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

2 个答案:

答案 0 :(得分:1)

它可能未声明,因为它位于Commdlg.h第878行的#ifdef STDMETHOD区块内

STDMETHODbasetyps.h

中定义

这篇文章Customizing PrintDlgEx and IPrintDialogCallback也可能有用。

答案 1 :(得分:0)

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

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