dal() 函数实现,
CGridDemoView::OnFilePrint()函数中的代码如下:
if(dlg.DoModal() == IDOK)
上面的if 语句打开打印设置对话框,并判断如果用户是否单击“确定”按钮,如果是,
DoModal()函数返回IDOK,进行if 语句块中的打印cāo作,反之则不进行打印。
(4)将从打印设置对话框获得的打印设备上下文附加到打印输出时使用的设备上下文对
象。CGridDemoView::OnFilePrint()中这一步骤具体如下:
CDC dc;
dc.Attach(dlg.GetPrinterDC());//把打印设备上下文附加到DC 对象
(5)进行打印的具体过程,本章不涉及这类内容,故略过,用户可以参考第14 章。
(6)结束打印。CGridDemoView::OnFilePrint()中的对应代码如下:
//结束打印
DeleteDC(dc.Detach());
4.5.2 页面设置对话框
页面设置对话框如图4-28 所示,提供了Windows 打印页面设置的标准功能,包括选择
纸张、打印方向和页边距等。CpageSetupDialog 类中封装了页面设置对话框。
下面演示GridDemo 例程如何使用页面设置对话框进行页边距的设置:m_rectMargin 保
枫叶文学网www.fywxw.com
第4 章 对话框
·91·
存在CGridDemoView 的成员变量中,为CGridDemoView::OnFilePrint()的打印代码设置页边
距。相关代码在GridDemoView.cpp 文件的CGridDemoView::OnFilePrintSetup()函数中,具体
如下:
(1)创建CGridDemoView::OnFilePrintSetup()函数。
CGridDemoView::OnFilePrintSetup()函数在GridDemo 例程中是“文件|页面设置”菜单项
的消息响应函数,对应ID 为ID_FILE_PRINT_SETUP。由IDE 的AppWizard 默认创建的SDI
应用程序中,ID_FILE_PRINT_SETUP 对应的菜单项是“文件|打印设置”,只需要将菜单项
的标题更改为“页面设置”即可与GridDemo 例程一致。用户只要依照第3 章的讲解,在
CGridDemoView 类中为该菜单项ON_FILE_PRINT_SETUP 添加消息处理函数,就可以创建
CGridDemoView::OnFilePrintSetup()函数。
图4-28 页面设置对话框
(2)创建页面设置对话框对象,并设置初始值。这部分功能在CGridDemoView::OnFilePrintSetup()
函数的开头实现,代码如下:
//打开一个页面设置对话框,用于设置打印区域,以毫米为单位
CPageSetupDialog dlg;
//初始化页边空白区域
dlg.m_p