📄 chap5_6.htm
字号:
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDefaults</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">在不打开对话框的情况下返回缺省打印机的缺省设置,返回的设置放在m_pd数据成员中。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDeviceName</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个包含有打印机设备名的CString对象。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDevMode</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个指向DEVMODE结构的指针,用来查询打印机的设备初始化信息和设备环境信息。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetDriverName</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个包含有打印机驱动程序名的CString对象。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetFromPage</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回打印范围的起始页码。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetToPage</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回打印范围的结束页码。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetPortName</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回一个包含有打印机端口名的CString对象。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">GetPrinterDC</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">返回所选打印设备的一个
HDC 句柄。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">PrintAll</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">若要打印文档的所有页则返回TRUE。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">PrintCollate</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">若用户选择了Collate
Copies检查框(需要校对打印拷贝)则返回TRUE。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">PrintRange</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">如果用户要打印文档的一部分页,则返回TRUE。</span></td>
</tr>
<tr>
<td WIDTH="24%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">PrintSelection</span></td>
<td WIDTH="76%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">若用户想打印当前选择的部分文档,则返回TRUE。</span></td>
</tr>
</table>
<p><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">用缺省配置的MFC AppWizard建立的程序支持Print和Print
Setup对话框,用户可以在File菜单中启动它们。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">5.6.6 公用对话框的使用实例</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">现在,让我们来测试一下公用对话框的使用。请读者用AppWizard创建一个单文档的MFC应用程序,名为CommonDlg。注意别忘了在AppWizard的第一步中选Single
document。</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CommonDlg程序要对所有的公用对话框进行了测试。为此,首先要提供用户命令接口。请读者在CommonDlg的菜单资源中插入一个名为&Common的新菜单,这个菜单插在Help菜单之前。然后,在Common菜单中,请按表5.11创建菜单项。</span></p>
<p ALIGN="JUSTIFY"><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="CENTER"><span style="font-size: 9pt">表5.11 Common菜单的菜单项</span></b></p>
<table BORDER="1" CELLSPACING="1" CELLPADDING="1" WIDTH="579">
<tr>
<td WIDTH="50%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">Caption</span></b></td>
<td WIDTH="50%"><b><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID</span></b></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">&Color...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_COLOR</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">&Open file...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_OPENFILE</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">&Save file...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_SAVEFILE</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">&Font...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_FONT</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">&Print...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_PRINT</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">P&rint setup...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_PRINTSETUP</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">F&ind...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_FIND</span></td>
</tr>
<tr>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">&Replace...</span></td>
<td WIDTH="50%"><p ALIGN="JUSTIFY"><span style="font-size: 9pt">ID_COMMON_REPLACE</span></td>
</tr>
</table>
<p><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">接下来的工作是编写测试程序的源代码。首先,利用ClassWizard为表5.11的菜单项创建消息处理函数,注意这些处理函数都是CCommonDlgView的成员。接着,请按清单5.10和5.11修改程序。限于篇幅,这里仅列出与测试相关的部分源代码。</span></p>
<p ALIGN="JUSTIFY"><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">清单5.10 头文件CommonDlgView.h</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">class CCommonDlgView : public CView</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">{</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">. . . . . .</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#ifdef _DEBUG</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">virtual void AssertValid() const;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">virtual void Dump(CDumpContext& dc)
const;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#endif</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">protected:</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">void DispPrintInfo(CPrintDialog& dlg);</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">protected:</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CFont m_Font; //正文的字体</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">COLORREF m_ForeColor; //正文的前景色</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">COLORREF m_BackColor; //正文的背景色</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">CFindReplaceDialog *m_pFindReplaceDlg;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">BOOL m_bFindOnly;</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">// Generated message map functions</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">protected:</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//Find和Replace对话框通知消息处理函数</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg LRESULT OnFindReplaceCmd(WPARAM,
LPARAM lParam);</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//{{AFX_MSG(CCommonDlgView)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonColor();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonFont();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonOpenfile();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonSavefile();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonPrint();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonPrintsetup();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonFind();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">afx_msg void OnCommonReplace();</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">//}}AFX_MSG</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">DECLARE_MESSAGE_MAP()</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">};</span></p>
<p><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">. . . . . .</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><b><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">清单5.11 文件CCommonDlgView.cpp</span></b></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include "stdafx.h"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include "CommonDlg.h"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include "CommonDlgDoc.h"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include "CommonDlgView.h"</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#ifdef _DEBUG</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#define new DEBUG_NEW</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#undef THIS_FILE</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">static char THIS_FILE[] = __FILE__;</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">#endif</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt">IMPLEMENT_DYNCREATE(CCommonDlgView, CView)</span></p>
<p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -