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

📄 chap2_4.htm

📁 着重介绍基于C++的web编程技术
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      <font SIZE="3"><p></font><font SIZE="3">控制类</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">菜单类</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">设备描述表</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">绘画对象类</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">通用类</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">文件</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">诊断</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">异常</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">收集</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">模板收集</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      <p></font></font><font SIZE="3"><font SIZE="3">其他支持类</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
      </font><p>OLE2</font><font SIZE="3"><font SIZE="3">类</font><font FACE="Times New Roman" SIZE="3"></p>
      </font><p>OLE基类<font FACE="Times New Roman" SIZE="3"></p>
      </font><p>OLE可视编辑包装程序类<font FACE="Times New Roman" SIZE="3"></p>
      </font><p>OLE 可视编辑服务器程序类<font FACE="Times New Roman" SIZE="3"></p>
      </font><p>OLE数据传输类<font FACE="Times New Roman" SIZE="3"></p>
      </font><p>OLE<font SIZE="3">对话框类</font><font FACE="Times New Roman" SIZE="3"></p>
      <p></font><font SIZE="3">其他</font></font><font FACE="Times New Roman" SIZE="3">OLE</font><font SIZE="3"><font SIZE="3">类</font><font FACE="Times New Roman" SIZE="3"></p>
      <p></font><font SIZE="3">数据库类</font><font FACE="Times New Roman" SIZE="3"></p>
      </font><b>
    </blockquote>
    <p><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p></font><font SIZE="3">宏和全局函数</font></b></font><font FACE="Times New Roman" SIZE="3"></p>
    <p></font><font SIZE="3">若某个函数或变量不是某个类的一个成员,那么它是一个全程函数或变量。</font><font FACE="Times New Roman" SIZE="3"></p>
    <p>Microsoft</font><font SIZE="3">基本宏和全程函数提供以下功能:</font><font FACE="Times New Roman" SIZE="3"></p>
    <blockquote>
      <blockquote>
        <font SIZE="3"><p></font><font SIZE="3">数据类型</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
        <p></font></font><font SIZE="3"><font SIZE="3">运行时刻对象类型服务</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
        <p></font></font><font SIZE="3"><font SIZE="3">诊断服务</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
        <p></font></font><font SIZE="3"><font SIZE="3">异常处理</font></font><font FACE="Times New Roman" SIZE="3"><font FACE="Times New Roman" SIZE="3"></p>
        </font><p>CString</font><font SIZE="3"><font SIZE="3">格式化及信息框显示</font><font FACE="Times New Roman" SIZE="3"></p>
        <p></font><font SIZE="3">消息映射</font><font FACE="Times New Roman" SIZE="3"></p>
        <p></font><font SIZE="3">应用消息和管理</font><font FACE="Times New Roman" SIZE="3"></p>
        <p></font><font SIZE="3">对象连接和嵌入(</font></font><font FACE="Times New Roman" SIZE="3">OLE</font><font SIZE="3"><font SIZE="3">)服务</font><font FACE="Times New Roman" SIZE="3"></p>
        <p></font><font SIZE="3">标准命令和</font></font><font FACE="Times New Roman" SIZE="3">Windows IDs</p>
      </blockquote>
    </blockquote>
    <p></font><font SIZE="3"><b><font SIZE="3"> </font><font FACE="Times New Roman" SIZE="3"></p>
    <p></font><font SIZE="3">约定</b>:全程函数以“</font></font><font FACE="Times New Roman" SIZE="3">Afx</font><font SIZE="3">”为前缀,所有全程变量都是以“</font><font FACE="Times New Roman" SIZE="3">afx</font><font SIZE="3">”为前缀,宏不带任何特别前缀,但是全部大写。</font><font FACE="Times New Roman" SIZE="3"></p>
    <p ALIGN="JUSTIFY"></font><font SIZE="3">常见的全局函数和宏有:</font><font FACE="Times New Roman" SIZE="3">AfxGetApp</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">AfxGetMainWnd</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">AfxMessageBox</font><font SIZE="3">,</font><font FACE="Times New Roman" SIZE="3">DEBUG_NEW</font><font SIZE="3">等,我们会在后面的章节中用到并对它们进行介绍。</font><font FACE="Times New Roman" SIZE="3"></p>
    <p></font><font SIZE="3">从继承关系来看,又可将</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">中的类分成两大类:大多数的</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">类是从</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">继承下来;另外一些类则不是从</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">类继承下来,这些类包括:字符串类</font><font FACE="Times New Roman" SIZE="3">CString</font><font SIZE="3">,日期时间类</font><font FACE="Times New Roman" SIZE="3">CTime</font><font SIZE="3">,矩形类</font><font FACE="Times New Roman" SIZE="3">CRect</font><font SIZE="3">,点</font><font FACE="Times New Roman" SIZE="3">CPoint</font><font SIZE="3">等,它们提供程序辅助功能。</font><font FACE="Times New Roman" SIZE="3"></p>
    <p></font><font SIZE="3">由于</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">中大部分类是从</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">继承下来的,</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">类描述了几乎所有的</font><font FACE="Times New Roman" SIZE="3">MFC</font><font SIZE="3">中其他类的一些公共特性,因此我们有必要理解</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">类。 </font><font FACE="Times New Roman" SIZE="3"></p>
    <p></font><font SIZE="3">我们首先查看一下</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">类的定义,</font><font FACE="Times New Roman" SIZE="3">CObject</font><font SIZE="3">类定义如下清单</font><font FACE="Times New Roman" SIZE="3">2.1</font><font SIZE="3">所示:</font><font SIZE="3" FACE="Times New Roman"></p>
    <p></font><b><font SIZE="3"> </font><font SIZE="3" FACE="Times New Roman"></p>
    <p></font><font SIZE="3"><font SIZE="3">清单</font></font><font FACE="Times New Roman" SIZE="3">2.1CObject</font><font SIZE="3">类的定义</font></b><font FACE="Times New Roman" SIZE="3"></p>
    <p>// class CObject is the root of all compliant objects</p>
    <p>class CObject</p>
    <p>{</p>
    <p>public:</p>
    <p>// Object model (types, destruction, allocation)</p>
    <p>virtual CRuntimeClass* GetRuntimeClass() const;</p>
    <p>virtual ~CObject(); // virtual destructors are necessary</p>
    <p>// Diagnostic allocations</p>
    <p>void* PASCAL operator new(size_t nSize);</p>
    <p>void* PASCAL operator new(size_t, void* p);</p>
    <p>void PASCAL operator delete(void* p);</p>
    <p>#if defined(_DEBUG) &amp;&amp; !defined(_AFX_NO_DEBUG_CRT)</p>
    <p>// for file name/line number tracking using DEBUG_NEW</p>
    <p>void* PASCAL operator new(size_t nSize, LPCSTR lpszFileName, int nLine);</p>
    <p>#endif</p>
    <p>// Disable the copy constructor and assignment by default so you will get</p>
    <p>// compiler errors instead of unexpected behaviour if you pass objects</p>
    <p>// by value or assign objects.</p>
    <p>protected:</p>
    <p>CObject();</p>
    <p>private:</p>
    <p>CObject(const CObject&amp; objectSrc); // no implementation</p>
    <p>void operator=(const CObject&amp; objectSrc); // no implementation</p>
    <p>// Attributes</p>
    <p>public:</p>
    <p>BOOL IsSerializable() const;</p>
    <p>BOOL IsKindOf(const CRuntimeClass* pClass) const;</p>
    <p>// Overridables</p>
    <p>virtual void Serialize(CArchive&amp; ar);</p>
    <p>// Diagnostic Support</p>
    <p>virtual void AssertValid() const;</p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -