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

📄 mfc教程_ mfc对象的创建.htm

📁 MFC (Microsoft Foundation Class Library)中的各种类结合起来构成了一个应用程序框架
💻 HTM
📖 第 1 页 / 共 5 页
字号:
    <TR>
      <TD vAlign=top colSpan=3 height=20>
        <P align=justify>续表 </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_HELP </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P align=justify>OnHelp </P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CWinApp </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_DEFAULT_HELP </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P align=justify>OnHelpIndex </P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CWinApp </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_NEXT_PANE </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P align=justify>OnNextPaneCmd </P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CSplitterWnd </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_PREV_PANE </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P align=justify>OnNextPaneCmd </P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CSplitterWnd </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_OLE_INSERT_NEW </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P></P></TD>
      <TD vAlign=top width="30%" height=20>
        <P></P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_OLE_EDIT_LINKS </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P></P></TD>
      <TD vAlign=top width="30%" height=20>
        <P></P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_OLE_VERB_FIRST...LAST </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P></P></TD>
      <TD vAlign=top width="30%" height=20>
        <P></P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_VIEW_TOOLBAR </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P></P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CFrameWnd </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_VIEW_STATUS_BAR </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P></P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CFrameWnd </P></TD></TR>
    <TR>
      <TD vAlign=top width="39%" height=20>
        <P align=justify>ID_INDICATOR_CAPS</P>
        <P align=justify>ID_INDICATOR_NUM</P>
        <P align=justify>ID_INDICATOR_SCRL</P>
        <P align=justify>ID_INDICATOR_KANA </P></TD>
      <TD vAlign=top width="31%" height=20>
        <P align=justify>OnUpdateKeyIndicator </P></TD>
      <TD vAlign=top width="30%" height=20>
        <P align=justify>CFrameWnd </P></TD></TR></TBODY></TABLE>
  <P align=center> </P>
  <P align=justify></P>
  <LI><A name=_Toc445889042></A><A name=_Toc445782445></A><A 
  name=_Toc452640921></A><A name=_Toc457299004></A><B>MFC对象的创建过程</B> 
  <P></P>
  <P 
  align=justify>应用程序使用MFC的接口是把一些自己的特殊处理填入MFC框架,这些处理或者在应用程序启动和初始化的时候被调用,或者在程序启动之后和用户交互的过程中被调用,或者在程序退出和作清理工作的时候被调用。这三个阶段中,和用户交互阶段是各个程序自己的事情,自然都不一样,但是程序的启动和退出两个阶段是MFC框架所实现的,是MFC框架的一部分,各个程序都遵循同样的步骤和规则。显然,清楚MFC框架对这两个阶段的处理是很有必要的,它可以帮助深入理解MFC框架,更好地使用MFC框架,更有效地实现应用程序特定的处理。</P>
  <P 
  align=justify>MFC程序启动和初始化过程就是创建MFC对象和Windows对象、建立各种对象之间的关系、把窗口显示在屏幕上的过程,退出过程就是关闭窗口、销毁所创建的Windows对象和MFC对象的过程。所以,下面要讨论几种常用MFC对象的结构,它们是构成一个文档-视模式应用程序的重要部件。</P>
  <OL>
    <P align=justify>
    <LI><A name=_Toc445889043></A><A name=_Toc445782446></A><A 
    name=_Toc452640922></A><A name=_Toc457299005></A><B>应用程序中典型对象的结构</B> 
    <P></P>
    <P 
    align=justify>本节将主要分析应用程序对象、文档对象、文档模板等的数据结构。通过考察类的结构,特别是成员变量结构,弄清它的功能、目的以及和其他类的关系;另外,在后续有关分析中必定会提到这些成员变量,这里先作个说明,到时也不会显得突兀。</P>
    <P 
    align=justify>下面几节以表格的形式来描述各个类的成员变量。表格中,第一列打钩的表示是MFC类库文档有说明的;没打钩的在文档中没有说明,如果是public,则可以直接访问,但随着MFC版本的变化,以后MFC可能不支持这些成员;第二列是访问属性;第三列是成员变量名称;第四列是成员变量的数据类型;第五列是对成员变量的功能、用途的简要描述。</P>
    <OL>
      <P align=justify>
      <LI><A name=_Toc445889044></A><A name=_Toc445782447></A><A 
      name=_Toc457299006></A><B>应用程序类的成员变量</B> 
      <P></P>
      <P 
      align=justify>应用程序对象的数据成员表由两部分组成,第一部分是CWinThread的成员变量,如表5-6所示,CWinApp继承了CWinThread的数据成员。第二部分是CWinApp自己定义的成员变量,如表5-7所示。</P>
      <P align=center>表5-6 CwinThread的成员变量</P>
      <TABLE cellSpacing=1 cellPadding=7 width=497 border=1>
        <TBODY>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>访问限制 </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>变量名称 </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>类型 </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>解释 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_bAutoDelete </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>BOOL </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>指定线程结束时是否销毁线程对象本身 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_hThread </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>HANDLE </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>当前线程的句柄 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_nThreadID </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>UINT </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>当前线程的ID </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_pMainWnd </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>CWnd* </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>指向应用程序主窗口的指针 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_pActiveWnd </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>CWnd* </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>当OLE SERVER就地激活时指向客户程序主窗口的指针 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_msgCur </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>MSG </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>当前消息(MSG结构) </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_pThreadParams </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>LPVOID </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>传递给线程开始函数的参数 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_pfnThreadProc </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>函数指针1 </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>线程开始函数,AFX_THREADPROC类型 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_lpfnOleTermOrFreeLib </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>函数指针2 </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>OLE用途,void (AFXAPI * fn)(BOOL,BOOL) </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_pMessageFilter </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>指针 </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>OLE消息过滤,指向COleMessageFilter对象 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>protected </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_ptCursorLast </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>CPoint </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>最新鼠标位置 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>protected </P></TD>
          <TD vAlign=top width="25%">
            <P align=justify>m_nMsgLast </P></TD>
          <TD vAlign=top width="17%">
            <P align=justify>UINT </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>消息队列中最新接收到的消息 </P></TD></TR></TBODY></TABLE>
      <P align=center> </P>
      <P align=center>表5-7 CWinApp的成员变量</P>
      <P align=justify></P>
      <TABLE cellSpacing=1 cellPadding=7 width=497 border=1>
        <TBODY>
        <TR>
          <TD vAlign=top width="4%"> </TD>
          <TD vAlign=top width="14%">
            <P align=justify>访问限制 </P></TD>
          <TD vAlign=top width="23%">
            <P align=justify>变量名称 </P></TD>
          <TD vAlign=top width="20%">
            <P align=justify>类型 </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>解释 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="23%">
            <P align=justify>m_pszAppName </P></TD>
          <TD vAlign=top width="20%">
            <P align=justify>LPCTSTR </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>应用程序名称 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="23%">
            <P align=justify>m_hInstance </P></TD>
          <TD vAlign=top width="20%">
            <P align=justify>HINSTANCE </P></TD>
          <TD vAlign=top width="39%">
            <P align=justify>标志应用程序当前实例句柄 </P></TD></TR>
        <TR>
          <TD vAlign=top width="4%">
            <P align=justify>√ </P></TD>
          <TD vAlign=top width="14%">
            <P align=justify>public </P></TD>
          <TD vAlign=top width="23%">

⌨️ 快捷键说明

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