MFC CWinApp Class成员变量及成员函数
来源:互联网 发布:c语言长整型数 编辑:程序博客网 时间:2024/06/04 19:35
一,概要说明
CWinApp派生于CWinThread类。在头文件afxwin.h中定义,在用户定义的类CUserApp theApp;初始化时优先于Main函数执行CWinApp构造函数。MFC库提供下列全局函数来访问CWinApp对象和其它全局信息:
- AfxGetApp 获得CWinApp对象指针。
- AfxGetInstanceHandle 获得当前应用程序实例的句柄。
- AfxGetResourceHandle 获得应用程序资源句柄。
- AfxGetAppName 获得一个字符串指针,该字符串包含应用程序名称。也可以用CWinApp->m_pszExeName。
二,类图中的重要位置
三,CWinApp成员函数及成员变量说明
私有成员及受保护的成员对外不可见,不以说明。
class CWinApp : public CWinThread{ DECLARE_DYNAMIC(CWinApp)public:// Constructor /* explicit */ CWinApp(LPCTSTR lpszAppName = NULL); // app name defaults to EXE name// Attributes // Startup args (do not change) // This module's hInstance. HINSTANCE m_hInstance; ////进程句柄,用于加载程序内资源等功能。 ////与Windows传送给WinMain的参数hInstance一致。 ////m_hInstance数据成员是Windows应用程序当前实例的句柄 ////它是全局函数AfxGetInstanceHandle的返回值 // Pointer to the command-line. LPTSTR m_lpCmdLine; ///与Windows传送给WinMain的参数lpCmdLine一致。 ///用m_lpCmdLine来访问当应用程序开始时用户输入的任何命令行参数。 ///m_lpCmdLine是LPSTR型的公共变量。 ////一般在CMyApp::InitInstance中处理命令 /* BOOL CMyApp::InitInstance() { if (m_lpCmdLine[0] == '/0') ........... } */ // Initial state of the application's window; normally, // this is an argument to ShowWindow(). int m_nCmdShow; // Running args (can be changed in InitInstance) // Human-redable name of the application. Normally set in // constructor or retreived from AFX_IDS_APP_TITLE. LPCTSTR m_pszAppName; ///(a、ExeName中获取,b、AFX_IDS_APP_TITLE中获取,c、CWinApp构造函数) free((void*)m_pszAppName); m_pszAppName=_tcsdup(_T("d://somedir//myapp.exe")); /// <summary> /// Application User Model ID.</summary> LPCTSTR m_pszAppID; // Name of registry key for this application. See // SetRegistryKey() member function. LPCTSTR m_pszRegistryKey; ////用来检测储存应用程序描述设置的全部注册键。通常它是只读态的。 // Pointer to CDocManager used to manage document templates // for this application instance. CDocManager* m_pDocManager; // Support for Shift+F1 help mode. // TRUE if we're in SHIFT+F1 mode. BOOL m_bHelpMode;public: // set in constructor to override default // Executable name (no spaces). LPCTSTR m_pszExeName; ///可用m_pszExeName来得到应用程序名称 // Default based on this module's path. LPCTSTR m_pszHelpFilePath; ///指针,指向包含应用程序的帮助文件的路径的字符串。 // Default based on this application's name. LPCTSTR m_pszProfileName; ///const char*型的公共变量,应用程序的.INI文件名。 // Sets and initializes usage of HtmlHelp instead of WinHelp. void EnableHtmlHelp(); // Sets and initializes usage of HtmlHelp instead of WinHelp. void SetHelpMode( AFX_HELP_TYPE eHelpType ); AFX_HELP_TYPE GetHelpMode(); // help mode used by the app AFX_HELP_TYPE m_eHelpType;public: // Loads a cursor resource. HCURSOR LoadCursor(LPCTSTR lpszResourceName) const; HCURSOR LoadCursor(UINT nIDResource) const; ///指向包含光标资源名称的以null结尾的字符串指针 // Loads a stock cursor resource; for for IDC_* values. HCURSOR LoadStandardCursor(LPCTSTR lpszCursorName) const; // Loads an OEM cursor; for all OCR_* values. HCURSOR LoadOEMCursor(UINT nIDCursor) const; // Loads an icon resource. HICON LoadIcon(LPCTSTR lpszResourceName) const; HICON LoadIcon(UINT nIDResource) const; // Loads an icon resource; for stock IDI_ values. HICON LoadStandardIcon(LPCTSTR lpszIconName) const; // Loads an OEM icon resource; for all OIC_* values. HICON LoadOEMIcon(UINT nIDIcon) const; // Retrieve an integer value from INI file or registry. virtual UINT GetProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault); ///从应用程序的.INI文件获取一个条目。 // Sets an integer value to INI file or registry. virtual BOOL WriteProfileInt(LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue); // Retrieve a string value from INI file or registry. virtual CString GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL); // Sets a string value to INI file or registry. virtual BOOL WriteProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue); // Retrieve an arbitrary binary value from INI file or registry. virtual BOOL GetProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPBYTE* ppData, UINT* pBytes); // Sets an arbitrary binary value to INI file or registry. virtual BOOL WriteProfileBinary(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPBYTE pData, UINT nBytes); // Override in derived class. virtual void InitLibId(); // Register virtual BOOL Register(); // Unregisters everything this app was known to register. virtual BOOL Unregister(); /// <summary> /// Deletes the subkeys and values of the specified key recursively.</summary> /// <returns> /// If the function succeeds, the return value is ERROR_SUCCESS. If the function fails, the return value is a nonzero error code defined in Winerror.h</returns> /// <param name="hParentKey">A handle to an open registry key.</param> /// <param name="strKeyName">The name of the key to be deleted.</param> /// <param name="pTM">Pointer to CAtlTransactionManager object</param> LONG DelRegTree(HKEY hParentKey, const CString& strKeyName, CAtlTransactionManager* pTM = NULL);// Running Operations - to be done on a running application // Dealing with document templates void AddDocTemplate(CDocTemplate* pTemplate); POSITION GetFirstDocTemplatePosition() const; CDocTemplate* GetNextDocTemplate(POSITION& pos) const; // Open named file, trying to match a regsitered // document template to it. virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName); virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName, BOOL bAddToMRU); // Add a string to the recent file list. Remove oldest string, // if no space left. virtual void AddToRecentFileList(LPCTSTR lpszPathName); // Printer DC Setup routine, 'struct tagPD' is a PRINTDLG structure. void SelectPrinter(HANDLE hDevNames, HANDLE hDevMode, BOOL bFreeOld = TRUE); // Create a DC for the system default printer. BOOL CreatePrinterDC(CDC& dc); BOOL GetPrinterDeviceDefaults(PRINTDLG* pPrintDlg); // Run this app as an embedded object. BOOL RunEmbedded(); // Run this app as an OLE automation server. BOOL RunAutomated(); // Parse the command line for stock options and commands. void ParseCommandLine(CCommandLineInfo& rCmdInfo); // React to a shell-issued command line directive. BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);// Overridables // Hooks for your initialization code virtual BOOL InitApplication(); // exiting virtual BOOL SaveAllModified(); // save before exit void HideApplication(); ///关闭所有文档前隐藏应用程序。 void CloseAllDocuments(BOOL bEndSession); // close documents before exiting ///关闭所有打开的文档。 // Advanced: to override message boxes and other hooks virtual int DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt); 为应用程序实现AfxMessageBox。 virtual void DoWaitCursor(int nCode); // 0 => restore, 1=> begin, -1=> end ///等待”光标的开关。 // Advanced: process async DDE request virtual BOOL OnDDECommand(_In_z_ LPTSTR lpszCommand); // Advanced: Help support virtual void WinHelp(DWORD_PTR dwData, UINT nCmd = HELP_CONTEXT); virtual void HtmlHelp(DWORD_PTR dwData, UINT nCmd = 0x000F); virtual void WinHelpInternal(DWORD_PTR dwData, UINT nCmd = HELP_CONTEXT); // Restart Manager support virtual HRESULT RegisterWithRestartManager(BOOL bRegisterRecoveryCallback, const CString &strRestartIdentifier); virtual HRESULT RegisterWithRestartManager(LPCWSTR pwzCommandLineArgs, DWORD dwRestartFlags, APPLICATION_RECOVERY_CALLBACK pRecoveryCallback, LPVOID lpvParam, DWORD dwPingInterval, DWORD dwCallbackFlags); virtual DWORD ApplicationRecoveryCallback(LPVOID lpvParam); virtual BOOL SupportsRestartManager() const { return m_dwRestartManagerSupportFlags & AFX_RESTART_MANAGER_SUPPORT_RESTART; } virtual BOOL SupportsApplicationRecovery() const { return m_dwRestartManagerSupportFlags & AFX_RESTART_MANAGER_SUPPORT_RECOVERY; } virtual BOOL SupportsAutosaveAtRestart() const { return m_dwRestartManagerSupportFlags & AFX_RESTART_MANAGER_AUTOSAVE_AT_RESTART; } virtual BOOL SupportsAutosaveAtInterval() const { return m_dwRestartManagerSupportFlags & AFX_RESTART_MANAGER_AUTOSAVE_AT_INTERVAL; } virtual BOOL ReopenPreviousFilesAtRestart() const { return m_dwRestartManagerSupportFlags & AFX_RESTART_MANAGER_REOPEN_PREVIOUS_FILES; } virtual BOOL RestoreAutosavedFilesAtRestart() const { return m_dwRestartManagerSupportFlags & AFX_RESTART_MANAGER_RESTORE_AUTOSAVED_FILES; } virtual DWORD GetApplicationRestartFlags() { return 0; } // Flags for RegisterApplicationRestart: default is none of RESTART_NO_CRASH/RESTART_NO_HANG/RESTART_NO_PATCH/RESTART_NO_REBOOT virtual LPVOID GetApplicationRecoveryParameter() { return NULL; } // Parameter to be passed along to RegisterApplicationRecoveryCallbackpublic: // public for implementation access CCommandLineInfo* m_pCmdInfo; ATOM m_atomApp, m_atomSystemTopic; // for DDE open UINT m_nNumPreviewPages; // number of default printed pages size_t m_nSafetyPoolSize; // ideal size void (AFXAPI* m_lpfnDaoTerm)(); void DevModeChange(_In_z_ LPTSTR lpDeviceName); void SetCurrentHandles(); // Finds number of opened CDocument items owned by templates // registered with the doc manager. int GetOpenDocumentCount(); virtual CDataRecoveryHandler *GetDataRecoveryHandler(); /// <summary> /// Tells whether Windows 7 Taskbar interaction is enabled.</summary> /// <returns> /// Returns TRUE if EnableTaskbarInteraction has been called and Operation System is /// Windows 7 or higher.</returns> /// <remarks> Taskbar interaction means that MDI application displays the content of MDI children /// in separate tabbed thumbnails that appear when mouse pointer is over application taskbar button.</remarks> virtual BOOL IsTaskbarInteractionEnabled(); /// <summary> /// Enables Taskbar interaction</summary> /// <returns> /// Returns TRUE if taskbar interaction can be enabled or disabled (e.g. this method was called before creation of main window).</returns> /// <remarks> /// This method must be called before creation of main window, otherwise it asserts and returns FALSE.</remarks> /// <param name="bEnable"> Specifies whether interaction with Windows 7 taskbar should be enabled (TRUE), or disabled (FALSE).</param> BOOL EnableTaskbarInteraction(BOOL bEnable = TRUE); // helpers for standard commdlg dialogs BOOL DoPromptFileName(CString& fileName, UINT nIDSTitle, DWORD lFlags, BOOL bOpenFileDialog, CDocTemplate* pTemplate); INT_PTR DoPrintDialog(CPrintDialog* pPD); void EnableModeless(BOOL bEnable); // to disable OLE in-place dialogs // overrides for implementation virtual BOOL InitInstance(); ///当你从CWinApp 派生一个应用程序类时 ///重载InitInstance成员函数来创建应用程序的主窗口对象。 virtual int ExitInstance(); // return app exit code virtual BOOL RestartInstance(); // handle restart by Restart Manager virtual int Run(); virtual BOOL OnIdle(LONG lCount); // return TRUE if more idle processing virtual LRESULT ProcessWndProcException(CException* e, const MSG* pMsg); virtual HINSTANCE LoadAppLangResourceDLL(); // Helper for message boxes; can work when no CWinApp can be found static int ShowAppMessageBox(CWinApp *pApp, LPCTSTR lpszPrompt, UINT nType, UINT nIDPrompt); static void DoEnableModeless(BOOL bEnable); // to disable OLE in-place dialogspublic: virtual ~CWinApp();#ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const;#endif // helpers for registration /// <summary> /// returns key for HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\lpszSection.</summary> /// <returns> /// Section key if the function succeeds, NULL - otherwise</returns> /// <param name="lpszSection">The name of the key to be obtained.</param> /// <param name="pTM">Pointer to CAtlTransactionManager object</param> HKEY GetSectionKey(LPCTSTR lpszSection, CAtlTransactionManager* pTM = NULL); /// <summary> /// returns key for HKEY_CURRENT_USER\"Software"\RegistryKey\ProfileName.</summary> /// <returns> /// Applixation key if the function succeeds, NULL - otherwise</returns> /// <param name="pTM">Pointer to CAtlTransactionManager object</param> HKEY GetAppRegistryKey(CAtlTransactionManager* pTM = NULL);protected: DECLARE_MESSAGE_MAP()public : // System Policy Settings virtual BOOL LoadSysPolicies(); // Override to load policies other than the system policies that MFC loads. BOOL GetSysPolicyValue(DWORD dwPolicyID, BOOL *pbValue); // returns the policy's setting in the out parameter};
0 0
- MFC CWinApp Class成员变量及成员函数
- MFC CCmdTarget Class成员变量及成员函数
- MFC CWinThread Class成员变量及成员函数
- MFC中有关CWinAPP类的成员变量和成员方法的应用
- CWinAPP类的成员变量和成员方法
- class 的static成员变量和 static 成员函数
- MFC CWinApp派生类中使用CFrameWnd派生类的成员函数Create来创建窗口
- static成员函数成员变量
- 成员变量与成员函数
- 静态成员变量成员函数
- 常成员变量、常成员函数及常对象
- static 成员函数及变量整理
- static 成员函数及变量整理
- java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况
- Java中class的修饰及成员变量的修饰
- C++ 成员函数成员变量 静态成员函数和变量
- 静态成员及变量
- MFC中的m_hWnd成员变量
- android anr分析记录
- C/C++:__packed
- Java项目开发
- Scrapy定向爬虫教程(二)——提取网页内容
- 树莓派使用 RTL8188CUS芯片 开AP模式
- MFC CWinApp Class成员变量及成员函数
- 常见的CSS布局总结
- html基础
- 赛意 右移
- 《Effective C++》学习笔记——条款44
- QT的显示机制
- ionic之样式bar-dark
- 【并行计算-CUDA开发】CUDA ---- Warp解析
- 09. Swing Interfaces