?? mfc教程_ mfc對象的創建.htm
字號:
<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 + -