📄 mfc5.php
字号:
<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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -