CPrintDialog
函数
CPrintDialog是一个函数,是指封装了Windows通用打印对话框,为打印提供的服务。通用打印对话框以一种与Windows标准一致的方式提供了一种实现Print和Print Setup对话框的简单方法。
应用
如果你希望你的应用程序在没有框架干涉的情况下来处理打印,则可用所提供的构造函数使用“原样”CPrintDialog类,或者从CPrintDialog派生自己的对话框类,并编制构造函数以满足自己的需要。在这两种情况下,由于这些对话框都是从类CCommondDialog类派生而来的,因此它们的行为将都类似于标准MFC对话框。
为了使用CPrintDialog对象,首先要用CPrintDialog构造函数来创建此对象。
一旦已经构造了对话框,你可以设置或修改m_pd结构中的任何值来初始化对话框的控件的值。m_pd结构是PRINTDLG类型的。要获取更多有关这个结构的信息,请参见Win32 SDK文档。
如果你在m_pd中没有为hDevMode和hDevName成员提供自己的句柄,则要确保在应用程序使用完此对话框时,调用Windows函数GlobalFree释放这些句柄。当使用由CWinApp::OnFilePrintSetup函数提供的框架的Print Setup实现时,应用程序不必释放这些句柄。这些句柄由CWinApp维护,并在CWinApp的析构函数中释放。唯一必要的是在独立使用CPrintDialog时,释放这些句柄。
在初始化对话框之后,调用DoModal成员函数来显示这个对话框,并允许用户选择打印选项。DoModal返回用户选择的是OK(IDOK)还是Cancel(IDCANCEL)按钮。
如果DoModal返回IDOK,则应用程序可以用一个CPrintDialog成员函数来获取用户输入的信息。
要在不显示一个对话框的情况下获取当前打印机的缺省状态,CPrintDialog::GetDefaults成员函数是一个有用的函数。这个成员函数不需要用户的交互作用。
你可以调用Windows的CommDlgExtendedError函数来确定在对话框的初始化过程中是否发生了错误,并获得有关错误的进一步消息。要获取有关这个函数的更多信息,请参见Win32 SDK文档。
CPrintDialog依赖由Windows 3.1及其更高版本引进的COMMDLG.DLL文档。要定制此对话框,先从CPrintDialog派生一个新类,提供一个定制对话框模板,并增加一个处理来自扩展控件的通知消息的消息映射。任何未处理消息将传递给基类处理。不需要定制hook函数。
要想根据对话框是Print还是Print Setup来不同地处理同一条消息,应用程序必须为每个对话框派生一个新类。还必须重载Windows函数AttachOnSetup,它负责处理当在Print对话框内选择Print Setup按钮时新对话框的创建。如果要获取有关使用CPrintDialog的更多信息,请参见“Visual C++程序员指南”中的文章“通用对话框类”。
#include 参阅:CPrintInfo
成员函数
数据成员
m_pd 用来定制CPrintDialog对话框的结构。
构造函数
CPrintDialog 构造一个CPrintDialog对话框。
操作
CreatePrinterDC 创建一个打印机设备环境,但不显示Print对话框。
DoModal 显示对话框,并允许用户进行选择。
GetCopies 获取所请求的备份数目。
GetDefaults 检取设备缺省项,但不显示对话框。
GetDeviceName 检取当前所选打印设备的名字。
GetDevMode 检取DEVMODE结构。
GetDriverName 检取当前所选打印机驱动器的名字。
GetFromPage 检取打印范围的起始页。
GetToPage 检取打印范围的结束页。
GetPortName 检取当前所选打印机端口名。
GetPrinterDC 检取设备环境的句柄。
PrintAll 确定是否请求打印文档的所有页。
PrintCollate 确定是否请求校对备份。
PrintRange 确定是否只打印指定范围内的页。
PrintSelection 确定是否只打印当前所选项。
参考资料
CPrintDialog选件类.Microsoft TechNet .
最新修订时间:2024-11-13 23:23
目录
概述
应用
参考资料