MFC CWinApp 类 受保护方法:CWinApp::LoadStdProfileSettings
CWinApp::LoadStdProfileSettings 是 MFC 中的一个受保护方法,用于加载标准的框架设置,包括窗口位置、大小、最小化状态等。这个方法通常在应用程序的 InitInstance 函数中调用,以便在应用程序启动时还原先前保存的用户设置。以下是一个简单的示例:BOOL CMyApp::InitInstance(){ // 其他初始化代码... // 启用 shell 打开 EnableShellOpen(); // 注册其他文件扩展名,如果需要的话 RegisterShellFileTypes(TRUE); // 加载标准框架设置 LoadStdProfileSettings(); // 其他初始化代码... return TRUE;}这个方法会根据先前保存的用户设置,恢复主窗口的位置、大小等信息。如果你的应用程序使用了框架窗口(MDI 或 SDI),这个方法通常会自动处理框架的状态,使得应用程序启动时能够恢复到先前的状态。需要注意的是,这个方法在初始化阶段调用,并且在 CWinApp 类中是受保护的,所以只...
MFC CWinApp 类 受保护方法:CWinApp::EnableShellOpen
CWinApp::EnableShellOpen 是 MFC 中的一个受保护方法,用于启用应用程序接受从外部 shell 打开的文件的功能。通常,当你的应用程序支持通过文件关联或命令行参数来打开文件时,可以使用这个方法。这个方法的调用将在应用程序的 InitInstance 函数中进行,以便在应用程序启动时生效。以下是一个简单的示例:BOOL CMyApp::InitInstance(){ // 其他初始化代码... // 启用 shell 打开 EnableShellOpen(); // 注册其他文件扩展名,如果需要的话 RegisterShellFileTypes(TRUE); // 其他初始化代码... return TRUE;}这里的 RegisterShellFileTypes(TRUE) 可以用于注册应用程序支持的文件类型,如果你的应用程序不需要特定的文件类型,也可以不调用这个函数。需要注意的是,这个方法在初始化阶段调用,并且在 CWinApp 类中是受保护的,所以只能在派生类中调用。
MFC CWinApp 类 公共方法:CWinApp::WriteProfileString
CWinApp::WriteProfileString 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将字符串写入注册表中的配置文件部分。void WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue ); lpszSection 参数是配置文件中的节(section)名称。 lpszEntry 参数是在指定节中标识字符串值的条目(entry)名称。 lpszValue 参数是要写入的字符串值。例如,如果你想将字符串写入配置文件中,可以使用以下代码:WriteProfileString(_T("MySection"), _T("MyStringValue"), _T("Hello, MFC!"));这会将名为 "MyStringValue" 的字符串值 "Hello, MFC!" 写入 "MySection" ...
MFC CWinApp 类 公共方法:CWinApp::WriteProfileInt
CWinApp::WriteProfileInt 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将整数值写入注册表中的配置文件部分。void WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue ); lpszSection 参数是配置文件中的节(section)名称。 lpszEntry 参数是在指定节中标识整数值的条目(entry)名称。 nValue 参数是要写入的整数值。例如,如果你想将整数值写入配置文件中,可以使用以下代码:WriteProfileInt(_T("MySection"), _T("MyIntegerValue"), 42);这会将名为 "MyIntegerValue" 的整数值 42 写入 "MySection" 节。请注意,这个方法是基于注册表的配置文件系统,因此数据将保存在注册表中。对于其他类型的数据或需要更灵活的配置管理的情况,可能需要考...
MFC CWinApp 类 公共方法:CWinApp::WriteProfileBinary
CWinApp::WriteProfileBinary 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于将二进制数据写入注册表中的配置文件部分。BOOL WriteProfileBinary( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPBYTE lpData, UINT nBytes ); lpszSection 参数是配置文件中的节(section)名称。 lpszEntry 参数是在指定节中标识二进制数据的条目(entry)名称。 lpData 参数是指向包含二进制数据的缓冲区的指针。 nBytes 参数是二进制数据的字节数。例如,如果你想将二进制数据写入配置文件中,可以使用以下代码:BYTE data[] = { 0x01, 0x02, 0x03, 0x04 };UINT dataSize = sizeof(data);WriteProfileBinary(_T("MySection"), _T("MyBinaryData"), d...
MFC CWinApp 类 公共方法:CWinApp::WinHelp
CWinApp::WinHelp 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于显示帮助文件。这个方法提供了一种在应用程序中显示帮助内容的方式。BOOL WinHelp(DWORD dwData, UINT nCmd = HELP_CONTEXT); dwData 参数表示帮助上下文信息。具体的含义取决于 nCmd 参数的值。 nCmd 参数表示显示帮助的方式,可以是 HELP_CONTEXT、HELP_CONTENTS 等,具体取决于应用程序的需求。例如,如果你想通过上下文 ID 显示帮助,可以使用以下代码:WinHelp(1001, HELP_CONTEXT);这里的 1001 是上下文 ID,HELP_CONTEXT 表示通过上下文 ID 显示帮助内容。请注意,WinHelp 方法在更现代的应用程序开发中,特别是对于 Unicode 和 64 位应用程序,可能不再是首选的方法。建议查阅最新的 MFC 文档或在线资源,以获取更详细的信息和替代方法。
MFC CWinApp 类 公共方法:CWinApp::SetHelpMode
在 MFC(Microsoft Foundation Classes)中,CWinApp 类中确实有一个名为 SetHelpMode 的公共方法。这个方法用于设置应用程序的帮助模式。帮助模式影响用户在应用程序中如何获取帮助信息。void SetHelpMode(DWORD dwData);SetHelpMode 方法接受一个 DWORD 参数 dwData,它可以设置为以下常量之一: AFX_IDH_NO_HELP:禁用帮助。 AFX_IDH_DEFAULT_HELP:启用默认的帮助。 AFX_IDH_TOOL_HELP:工具栏帮助模式。例如,如果你想启用默认的帮助模式,可以在应用程序的初始化代码中调用:SetHelpMode(AFX_IDH_DEFAULT_HELP);请注意,SetHelpMode 方法的具体行为可能还受到应用程序和窗口的其他设置的影响。如果你需要更详细的信息,建议查阅相关的 MFC 文档或在线资源。
MFC CWinApp 类 公共方法:CWinApp::SaveAllModified
CWinApp::SaveAllModified 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于保存所有已修改但尚未保存的文档。这个方法通常在应用程序即将关闭时调用,以确保用户有机会保存对文档的更改。virtual BOOL SaveAllModified();这个方法会遍历应用程序中所有的文档,检查是否有修改过但尚未保存的文档,如果有的话,会询问用户是否保存这些修改。返回值为 TRUE 表示所有文档都已成功保存或者用户选择不保存,返回值为 FALSE 表示有文档未能成功保存。典型的用法可能是在应用程序即将关闭时调用该方法,例如在 CWinApp 派生类的 ExitInstance 方法中:int CMyApp::ExitInstance(){ // 保存所有已修改但尚未保存的文档 if (!SaveAllModified()) { // 用户取消了保存操作,可以在这里进行处理 } // 调用基类 ExitInstance 方法 return CWinApp::ExitInstance();...
MFC CWinApp 类 公共方法:CWinApp::Run
CWinApp::Run 是 MFC(Microsoft Foundation Classes)中的一个重要方法,用于启动消息循环并运行应用程序。它通常被放在应用程序的入口点中,例如 InitInstance 方法中。virtual int Run();Run 方法是一个虚拟方法,因此你可以在派生类中重写它以提供自定义的消息循环行为。默认情况下,它会启动消息循环并处理用户输入、窗口消息等事件。典型的 MFC 应用程序结构中,Run 方法通常在 CWinApp 派生类的 InitInstance 方法中被调用,如下所示:BOOL CMyApp::InitInstance(){ // 初始化应用程序的各种设置 // 调用 Run 方法启动消息循环 return CWinApp::Run();}在 Run 方法运行期间,应用程序会不断接收并处理消息,直到用户关闭主窗口或调用 PostQuitMessage 以结束消息循环。
MFC CWinApp 类 公共方法:CWinApp::ProcessWndProcException
在 MFC(Microsoft Foundation Classes)的 CWinApp 类中,ProcessWndProcException 方法用于处理窗口过程(WndProc)中的异常。该方法的作用是捕获窗口过程中的异常,并进行相应的处理。以下是 CWinApp 类中 ProcessWndProcException 方法的定义:virtual BOOL ProcessWndProcException(CException* e, const MSG* pMsg);该方法接受两个参数:1. CException* e:表示捕获到的异常对象。2. const MSG* pMsg:表示引发异常的消息结构。应用程序可以通过重写 ProcessWndProcException 方法来自定义对窗口过程异常的处理方式。默认情况下,CWinApp 类的 ProcessWndProcException 方法返回 FALSE,这意味着异常未被处理,将继续传递给系统的异常处理机制。以下是一个简单的示例,演示了如何在派生自 CWinApp 的类中重写 ProcessWndProcException 方法...
MFC CWinApp 类 公共方法:CWinApp::ProcessShellCommand
CWinApp 类中的 ProcessShellCommand 是一个用于处理命令行参数的方法。它通常在应用程序启动时被调用,用于解析命令行参数并执行相应的操作。这个方法的签名如下:virtual BOOL ProcessShellCommand(CCommandLineInfo& rCmdInfo);这个方法接受一个 CCommandLineInfo 对象的引用作为参数,该对象包含了从命令行获取的信息,如文件名、参数等。在应用程序启动时,CWinApp 的派生类通常会调用 ProcessShellCommand 方法,传递一个 CCommandLineInfo 对象,以便处理命令行参数。以下是一个简单的例子,演示了如何在派生自 CWinApp 的类中使用 ProcessShellCommand 方法:class CMyWinApp : public CWinApp{public: virtual BOOL InitInstance() { // 创建主窗口等初始化操作 // 处理命令行参数 CCommandLineInfo...
MFC CWinApp 类 公共方法:CWinApp::ProcessMessageFilter
CWinApp::ProcessMessageFilter 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于处理消息过滤器。这个方法允许你在消息被发送到主窗口之前对其进行处理,以便进行自定义的消息处理或过滤。在 MFC 中,消息过滤器是一个对象,它可以截获和处理 Windows 消息。CWinApp::ProcessMessageFilter 允许你设置一个消息过滤器,以便在消息到达主窗口之前拦截并进行处理。该方法的原型如下:BOOL ProcessMessageFilter(int code, LPMSG lpMsg);参数说明: code:指定过滤器的类型。如果设置为 CMessageFilter::MSGF_COMMCTRL_BEGINDRAG,表示正在进行拖放操作。 lpMsg:指向 MSG 结构的指针,该结构包含有关被处理消息的信息。你可以通过继承 CWinApp 类并重写 ProcessMessageFilter 方法,来实现自定义的消息处理逻辑。这对于需要在应用程序级别处理消息的情况非常有用。
MFC CWinApp 类 公共方法:CWinApp::PreTranslateMessage
CWinApp::PreTranslateMessage 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于在消息翻译之前拦截和处理消息。这个方法通常被用来定制消息处理,以便应用程序可以在消息传递到窗口过程之前对其进行处理。BOOL CWinApp::PreTranslateMessage(MSG* pMsg);在这个方法中,你可以添加自定义的消息处理逻辑,例如特定键盘快捷键的处理、消息过滤等。如果该方法返回 TRUE,则表示应用程序已经完全处理了该消息,MFC将不再继续处理该消息;如果返回 FALSE,则表示应用程序没有完全处理该消息,MFC将继续处理该消息。以下是一个简单的示例,演示如何在派生的 CWinApp 类中重写 PreTranslateMessage 方法:// MyApp.hclass CMyApp : public CWinApp{public: virtual BOOL InitInstance(); virtual int ExitInstance(); afx_msg void OnAppAbout()...
MFC CWinApp 类 公共方法:CWinApp::ParseCommandLine
CWinApp::ParseCommandLine 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于解析命令行参数。这个方法允许应用程序检查并处理在启动应用程序时传递的命令行参数。void CMyWinApp::ParseCommandLine(CCommandLineInfo& rCmdInfo){ // 在这里添加解析命令行参数的代码 // 调用基类的方法 CWinApp::ParseCommandLine(rCmdInfo);}在这个方法中,你可以通过 rCmdInfo 对象获取和处理命令行参数。通常,你可能会检查命令行参数以确定应用程序应该以什么模式启动,或者是否需要执行特定的操作。以下是一个简单的例子,演示如何在 ParseCommandLine 中检查命令行参数:void CMyWinApp::ParseCommandLine(CCommandLineInfo& rCmdInfo){ // 调用基类的方法 CWinApp::ParseCommandLine(rCmdInfo); ...
MFC CWinApp 类 公共方法:CWinApp::OpenDocumentFile
CWinApp::OnIdle 是 MFC(Microsoft Foundation Classes)中的一个公共方法,用于处理程序处于空闲状态时的任务。通常,当应用程序没有其他事件要处理时,它会调用 OnIdle 方法,以便应用程序可以执行一些后台任务或进行其他处理。你可以重写这个方法,以便在应用程序空闲时执行你自己的代码。BOOL CMyWinApp::OnIdle(LONG lCount){ // 在这里添加你的处理代码 // 返回 TRUE 以便保持空闲处理继续 return CWinApp::OnIdle(lCount);}另一个方法 CWinApp::OpenDocumentFile 用于打开指定的文档文件。它返回指向文档类对象的指针。你可以使用这个方法来在应用程序中打开文档。CDocument* CMyWinApp::OpenDocumentFile(LPCTSTR lpszFileName){ // 在这里添加打开文档的代码 // 调用基类的方法 return CWinApp::OpenDocumentFile(lpszFileNam...
MFC CWinApp 类 公共方法:CWinApp::OnDDECommand
CWinApp::OnDDECommand是MFC(Microsoft Foundation Classes)中CWinApp类的一个公共方法,用于处理DDE(Dynamic Data Exchange)命令。以下是该方法的简要说明:BOOL OnDDECommand( UINT uCmd, CEditDoc* pDoc); uCmd:指定DDE命令的值。 pDoc:指向文档对象的指针,表示与DDE命令相关联的文档。该方法返回一个BOOL值,表示是否成功处理了DDE命令。在使用OnDDECommand时,你通常需要在你的应用程序类中重写此方法,以便根据具体的DDE命令执行适当的操作。以下是一个示例用法:class CMyApp : public CWinApp{public: virtual BOOL OnDDECommand(UINT uCmd, CEditDoc* pDoc) { // 在这里根据具体的DDE命令执行相应的操作 // ... return TRUE; // 表示成功处理了DDE命令 }};这只是一个...
MFC CWinApp 类 公共方法:CWinApp::LoadStandardCursor
在MFC(Microsoft Foundation Classes)中,CWinApp类确实有一个名为LoadStandardCursor的公共方法。该方法用于加载标准的系统光标。以下是该方法的简要说明:HCURSOR LoadStandardCursor( LPCTSTR lpCursorName); lpCursorName:指定要加载的标准系统光标的名称。该方法返回一个HCURSOR句柄,表示加载的标准系统光标。以下是一个示例用法:CWinApp* pApp = AfxGetApp();HCURSOR hCursor = pApp->LoadStandardCursor(IDC_ARROW);在这个例子中,IDC_ARROW是系统定义的光标标识符,表示标准的箭头光标。这个方法通常在应用程序初始化或其他需要加载系统标准光标的地方调用。
MFC CWinApp 类 公共方法:CWinApp::LoadIcon
CWinApp::LoadIcon是CWinApp类中的一个公共方法,用于加载图标资源。以下是该方法的简要说明:HICON LoadIcon( LPCTSTR lpszResourceName); lpszResourceName:指定要加载的图标资源的名称。该方法返回一个HICON句柄,表示加载的图标资源。以下是一个示例用法:CWinApp* pApp = AfxGetApp();HICON hIcon = pApp->LoadIcon(IDI_MY_ICON);在这个例子中,IDI_MY_ICON是你在资源文件中定义的图标资源的标识符。这个方法通常在应用程序初始化或其他需要加载图标资源的地方调用。
MFC CWinApp 类 公共方法:CWinApp::LoadCursor
CWinApp::LoadCursor是CWinApp类中的一个公共方法,用于加载光标资源。以下是该方法的简要说明:HCURSOR LoadCursor( LPCTSTR lpszResourceName); lpszResourceName:指定要加载的光标资源的名称。该方法返回一个HCURSOR句柄,表示加载的光标资源。以下是一个示例用法:CWinApp* pApp = AfxGetApp();HCURSOR hCursor = pApp->LoadCursor(IDC_MY_CURSOR);在这个例子中,IDC_MY_CURSOR是你在资源文件中定义的光标资源的标识符。这个方法通常在应用程序初始化或其他需要加载光标资源的地方调用。
MFC CWinApp 类 公共方法:CWinApp::InitInstance
CWinApp::InitInstance是CWinApp类中的一个关键方法,用于执行应用程序的初始化。在MFC框架中,InitInstance方法在应用程序启动时调用,用于设置应用程序的初始状态、创建主窗口以及执行其他初始化操作。以下是该方法的签名:virtual BOOL InitInstance(); 返回类型:BOOL,表示初始化是否成功。 通常情况下,你需要在派生类中覆盖这个方法,以执行应用程序特定的初始化操作。以下是一个简单的示例,演示如何在InitInstance方法中进行初始化:class CMyApp : public CWinApp{public: virtual BOOL InitInstance() { // 调用基类的初始化方法 if (!CWinApp::InitInstance()) return FALSE; // 执行应用程序的其他初始化操作 // 例如,创建主窗口 CMainFrame* pFrame = new CMainFrame; ...