【MFC】CWinApp类详解
生活随笔
收集整理的這篇文章主要介紹了
【MFC】CWinApp类详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 數據成員
- 03. 成員方法
- 04. 命令處理
- 05. 附錄
01. 概述
CWinApp是一個基類,你通過它來繼承Windows應用程序對象。應用程序對象為你提供了初始化應用程序(以及它的每一個實例)和運行應用程序所需的成員函數。
每個使用微軟基礎類庫的應用程序都只能包含一個從CWinApp繼承的對象。當Windows調用WinMain函數時,這個對象在其它C++全局對象都已經生成并且可用之后才被創建,WinMain函數是由微軟基礎類庫提供的。將你的CWinApp對象定義為全局的。
當你從CWinApp繼承應用程序類的時候,應重載InitInstance成員函數以創建應用程序的主窗口對象。
除了CWinApp的成員函數以外,微軟基礎類庫還提供了以下全局函數,用于訪問你的CWinApp對象以及其它全局信息: · AfxGetInstanceHandle 獲得當前應用程序實例的句柄。 · AfxGetResourceHandle 獲得應用程序資源的句柄。 · AfxGetAppName 獲得一個字符串指針,其中包含了應用程序的名字。 另外,如果你擁有一個指向CWinApp對象的指針,可以通過m_pszExename來獲得應用程序的名字。有關CWinApp類的更多信息參見“Visual C++ 程序員指南”中的“CWinApp:應用程序類”,其中包括下面的內容: · AppWizard生成的CWinApp派生代碼 · CWinApp在你的應用程序執行順序中作用 · CWinApp的缺省成員函數實現 · CWinApp的主要可重載函數 #include <afxwin.h>繼承關系
CObject └CCmdTarget └CWinThread └CWinApp02. 數據成員
數據成員 m_pszAppName 指定了應用程序的名字 m_hInstance 標識了應用程序的當前實例 m_hPrevInstance 在32位應用程序中被設為NULL m_lpCmdLine 指向一個以null結尾的字符串,指定了應用程序的命令行 m_nCmdShow 指定最初如何顯示窗口 m_bHelpMode 指明用戶是否處于Help上下文模式(通常用SHIFT+F1激活) m_pActiveWnd 當一個OLE服務器是現場可激活時,它指向容器應用程序的主窗口 m_pszExeName 應用程序的模塊名字 m_pszHelpFilePath 應用程序的幫助文件的路徑 m_pszProfileName 應用程序的.INI文件名 m_pszRegistryKey 用于確定保存應用程序主要設置的完整的注冊表鍵03. 成員方法
構造函數 CWinApp 構造一個CWinApp對象 操作函數 LoadCursor 載入光標資源 LoadStandardCursor 載入WINDOWS.H中IDC_常量所指定的Windows預定義光標 LoadOEMCursor 載入WINDOWS.H中OCR_常量所指定的WindowsOEM預定義光標 LoadIcon 載入圖標資源 LoadStandardIcon 載入WINDOWS.H中IDI_常量所指定的Windows預定義圖標 LoadOEMIcon 載入WINDOWS.H中OIC_常量所指定的WindowsOEM預定義圖標 RunAutomated 檢查應用程序的命令行是否指定/Automation選項。已不用。應當在調用ParseCommandLine之后使用CCommandLineInfo::m_bRunEmbedded中的值 RunEmbedded 檢查應用程序的命令行是否指定/Embedding選項。已不用。應當在調用ParseCommandLine之后使用CCommandLineInfo::m_bRunEmbedded中的值 ParseCommandLine 解析命令行中的每個參數和標志 ProcessShellCommand 處理命令行參數和標志 GetProfileInt 從應用程序的.INI文件的一個入口中獲取一個整數 WriteProfileInt 將一個整數寫到應用程序的.INI文件的入口 GetProfileString 從應用程序的.INI文件的一個入口中獲取一個字符串 WriteProfileString 將一個字符串寫到應用程序的.INI文件的入口 AddDocTemplate 將一個文檔模板加到應用程序的可用文檔模板列表中 GetFirstDocTemplatePosition 獲取第一個文檔模板的位置 GetNextDocTemplate 獲得文檔模板的位置。可以遞歸調用 OpenDocumentFile 由框架調用,用以從文件打開一個文檔 AddToRecentFileList 將一個文件名加入最近使用(MRU)的文件列表 SelectPrinter 選擇先前由用戶在打印對話框中指定的打印機 CreatePrinterDC 創建一個打印機設備環境 GetPrinterDeviceDefaults 獲得缺省的打印機設備 可重載函數 InitInstance 可被重載以執行Windows的實例初始化,比如創建窗口對象 Run 運行缺省的消息循環。可被重載以定制消息循環 OnIdle 可被重載以執行應用程序指定的空閑時處理 ExitInstance 可被重載以在應用程序結束時執行清除操作 HideApplication 在關閉所有的文檔之前隱藏應用程序 CloseAllDocuments 關閉所有打開的文檔 PreTranslateMessage 在消息被分派到Windows函數::TranslateMessage和::DispatchMessage之前過濾消息 SaveAllModified 提示用戶保存所有改變了的文檔 DoMessageBox 為應用程序實現AfxMessageBoxProcessMessageFilter在消息到達應用程序之前截取特定的消息 ProcessWndProcException 截取應用程序的消息和命令處理函數拋出的未被處理的異常 DoWaitCursor 打開或關閉等待光標 OnDDECommand 框架調用這個函數以響應動態數據交換(DDE)執行命令 WinHelp 調用Windows的WinHelp函數 初始化函數 LoadStdProfileSettings 載入標準的.INT文件設置并允許MRU文件列表特性 SetDialogBkColor 設置對話框和消息框的缺省背景顏色 SetRegistryKey 使應用程序的設置保存在注冊表中,而不是.INI文件中 EnableShellOpen 允許用戶通過Windows的文件管理器打開數據文件 RegisterShellFileTypes 在Windows的文件管理器中注冊所有的應用程序文檔類型 Enable3dControls 使控件具有三維外觀 Enable3dControlsStatic 使控件具有三維外觀04. 命令處理
命令處理 OnFileNew 實現ID_FILE_NEW命令 OnFileOpen 實現ID_FILE_NEW命令 OnFilePrintSetup 實現ID_FILE_PRINT_SETUP命令 OnContextHelp 處理應用程序內的SHIFT+F1命令 OnHelp 處理應用程序內的F1幫助命令(使用當前的上下文) OnHelpIndex 處理ID_HELP_INDEX命令,提供缺省的幫助主題 OnHelpFinder 處理ID_HELP_FINDER和ID_DEFAULT_HELP命令 OnHelpUsing 處理ID_HELP_USING命令05. 附錄
5.1 官方參考文檔
網址:https://docs.microsoft.com/en-us/cpp/mfc/reference/cwinapp-class?view=msvc-160
總結
以上是生活随笔為你收集整理的【MFC】CWinApp类详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【MFC】Windows样式
- 下一篇: 【MFC】CFrameWnd类详解