词条 | CPrintDialog |
释义 | CPrintDialog类封装了Windows通用打印对话框为打印提供的服务。通用打印对话框以一种与Windows标准一致的方式提供了一种实现Print和Print Setup对话框的简单方法。一旦已经构造了对话框,你可以设置或修改m_pd结构中的任何值来初始化对话框的控件的值。m_pd结构是PRINTDLG类型的。要获取更多有关这个结构的信息,请参见Win32 SDK文档。 CPrintDialog CObject └CCmdTarget └CWnd └CDialog └CCommonDialog └CPrintDialogCPrintDialog类封装了Windows通用打印对话框为打印提供的服务。通用打印对话框以一种与Windows标准一致的方式提供了一种实现Print和Print Setup对话框的简单方法。 如果你愿意,可以依靠框架来为应用程序处理许多打印处理方面的事情。在这种情况下,框架自动显示打印用的Windows通用对话框。也可以让框架为应用程序处理打印操作,但用自己的打印对话框来加载通用的Print对话框。 如果你希望你的应用程序在没有框架干涉的情况下来处理打印,则可用所提供的构造函数使用“原样”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 <afxdlgs.h> 请参阅:CPrintInfo CPrintDialog类成员 数据成员 m_pd用来定制CPrintDialog对话框的结构构造 CPrintDialog构造一个CPrintDialog对话框操作 CreatePrinterDC创建一个打印机设备环境,但不显示Print对话框DoModal显示对话框,并允许用户进行选择GetCopies获取所请求的备份数目GetDefaults检取设备缺省项,但不显示对话框GetDeviceName检取当前所选打印设备的名字GetDevMode检取DEVMODE结构GetDriverName检取当前所选打印机驱动器的名字GetFromPage检取打印范围的起始页GetToPage检取打印范围的结束页GetPortName检取当前所选打印机端口名GetPrinterDC检取设备环境的句柄PrintAll确定是否请求打印文档的所有页PrintCollate确定是否请求校对备份PrintRange确定是否只打印指定范围内的页PrintSelection确定是否只打印当前所选项 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。