⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chap5_6.htm

📁 VC++编程实例。非常详细
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <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的菜单资源中插入一个名为&amp;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">&amp;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">&amp;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">&amp;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">&amp;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">&amp;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&amp;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&amp;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">&amp;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&amp; 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&amp; 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 &quot;stdafx.h&quot;</span></p>
    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include &quot;CommonDlg.h&quot;</span></p>
    <p ALIGN="JUSTIFY"><span style="font-size: 9pt"> </span></p>
    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include &quot;CommonDlgDoc.h&quot;</span></p>
    <p ALIGN="JUSTIFY"><span style="font-size: 9pt">#include &quot;CommonDlgView.h&quot;</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 + -