CWinAppEx
class
CWinAppEx
handles the application state, saves the state to the registry, loads the state from the registry, initializes application managers, and provides links to those same application managers.
For more detail, see the source code located in the mfc
folder of your Visual Studio installation. For example, %ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\atlmfc\src\mfc
.
Syntax
class CWinAppEx : public CWinApp
Members
Public Constructors
Name | Description |
---|---|
CWinAppEx::CWinAppEx |
Constructs a CWinAppEx object. |
Public Methods
Name | Description |
---|---|
CWinAppEx::CleanState |
Removes information about the application from the Windows registry. |
CWinAppEx::EnableLoadWindowPlacement |
Specifies whether the application will load the initial size and location of the main frame window from the registry. |
CWinAppEx::EnableTearOffMenus |
Enables tear-off menus for the application. |
CWinAppEx::EnableUserTools |
Enables the user to create custom menu commands in the application. |
CWinAppEx::ExitInstance |
Called by the framework from within the Run member function to exit this instance of the application. (Overrides CWinApp::ExitInstance .) |
CWinAppEx::GetBinary |
Reads binary data that is associated with the specified registry value. |
CWinAppEx::GetContextMenuManager |
Returns a pointer to the global CContextMenuManager object. |
CWinAppEx::GetDataVersion |
|
CWinAppEx::GetDataVersionMajor |
Returns the major version of the application saved in the Windows registry. |
CWinAppEx::GetDataVersionMinor |
Returns the minor version of the application saved in the Windows registry. |
CWinAppEx::GetInt |
Reads numeric data that is associated with the specified value from the registry. |
CWinAppEx::GetKeyboardManager |
Returns a pointer to the global CKeyboardManager object. |
CWinAppEx::GetMouseManager |
Returns a pointer to the global CMouseManager object. |
CWinAppEx::GetObject |
Reads CObject -derived data that is associated with the specified value from the registry. |
CWinAppEx::GetRegSectionPath |
Returns a string that is the path of a registry key. This path concatenates the supplied relative path with the application path. |
CWinAppEx::GetRegistryBase |
Returns the registry path for the application. |
CWinAppEx::GetSectionBinary |
Reads binary data that is associated with the specified key and value from the registry. |
CWinAppEx::GetSectionInt |
Reads numeric data from the registry associated with the specified key and value. |
CWinAppEx::GetSectionObject |
Reads CObject data that is associated with the specified key and value from the registry. |
CWinAppEx::GetSectionString |
Reads string data that is associated with the specified key and value from the registry. |
CWinAppEx::GetShellManager |
Returns a pointer to the global CShellManager object. |
CWinAppEx::GetString |
Reads string data that is associated with the specified value from the registry. |
CWinAppEx::GetTooltipManager |
Returns a pointer to the global CTooltipManager object. |
CWinAppEx::GetUserToolsManager |
Returns a pointer to the global CUserToolsManager object. |
CWinAppEx::InitContextMenuManager |
Initializes the CContextMenuManager object. |
CWinAppEx::InitKeyboardManager |
Initializes the CKeyboardManager object. |
CWinAppEx::InitMouseManager |
Initializes the CMouseManager object. |
CWinAppEx::InitShellManager |
Initializes the CShellManager class |
CWinAppEx::InitTooltipManager |
Initializes the CTooltipManager class. |
CWinAppEx::IsResourceSmartUpdate |
|
CWinAppEx::IsStateExists |
Indicates whether the specified key is in the registry. |
CWinAppEx::LoadState |
Loads the application state from the registry. |
CWinAppEx::OnAppContextHelp |
Called by the framework when the user requests context help for the Customization dialog box. |
CWinAppEx::OnViewDoubleClick |
Calls the user-defined command when the user double-clicks anywhere in the application. |
CWinAppEx::OnWorkspaceIdle |
|
CWinAppEx::SaveState |
Writes the state of the application framework to the Windows registry. |
CWinAppEx::SetRegistryBase |
Sets the path of the default registry key. This key will serve as a root for all subsequent registry calls. |
CWinAppEx::ShowPopupMenu |
Displays a popup menu. |
CWinAppEx::WriteBinary |
Writes the binary data to the specified registry value. |
CWinAppEx::WriteInt |
Writes the numeric data to the specified registry value. |
CWinAppEx::WriteObject |
Writes data that is derived from the CObject Class to the specified registry value. |
CWinAppEx::WriteSectionBinary |
Writes the binary data to a value of the specified registry key. |
CWinAppEx::WriteSectionInt |
Writes the numeric data to a value of the specified registry key. |
CWinAppEx::WriteSectionObject |
Writes data derived from the CObject class to a value of the specified registry key. |
CWinAppEx::WriteSectionString |
Writes the string data to a value of the specified registry key. |
CWinAppEx::WriteString |
Writes the string data to the specified registry value. |
Protected Methods
Name | Description |
---|---|
CWinAppEx::LoadCustomState |
Called by the framework when the application state has been loaded. |
CWinAppEx::LoadWindowPlacement |
Called by the framework when it loads the size and location of your application from the registry. The loaded data includes the size and location of the main frame at the time your application last closed. |
CWinAppEx::OnClosingMainFrame |
Called by the framework when a main frame window is processing WM_CLOSE . |
CWinAppEx::PreLoadState |
Called by the framework immediately before the application state is loaded. |
CWinAppEx::PreSaveState |
Called by the framework immediately before the application state is saved. |
CWinAppEx::ReloadWindowPlacement |
Reloads the size and location of the supplied window from the registry |
CWinAppEx::SaveCustomState |
Called by the framework after it writes the application state to the registry. |
CWinAppEx::StoreWindowPlacement |
Called by the framework to write the size and location of the main frame to the registry. |
Data Members
Name | Description |
---|---|
CWinAppEx::m_bForceImageReset |
Specifies whether the framework will reset all toolbar images when the frame window that contains the toolbar is loaded. |
Remarks
Much of the functionality provided by the MFC framework depends on the CWinAppEx
class. You can incorporate the CWinAppEx
class into your application in one of two ways:
Construct a
CWinAppEx
class in the main thread.Derive the main application class from
CWinAppEx
.
After you incorporate CWinAppEx
into your application, you can initialize any one of the application managers. Before you use an application manager, you must initialize it by calling the appropriate initialize method. To obtain a pointer to a specific manager, call the associated get method. The CWinAppEx
class manages the following application managers: CMouseManager
Class, CContextMenuManager
Class, CKeyboardManager
Class, CUserToolsManager
Class, and CMenuTearOffManager
Class.
Inheritance Hierarchy
Requirements
Header: afxwinappex.h
CWinAppEx::CleanState
Removes all the information about the application from the Windows registry.
virtual BOOL CleanState(LPCTSTR lpszSectionName=NULL);
Parameters
lpszSectionName
[in] A string that contains a path of a registry key.
Return Value
Nonzero if the method was successful; otherwise 0.
Remarks
This method clears application data from a specific section of the registry. You can specify the section to clear by using the parameter lpszSectionName
. If lpszSectionName
is NULL
, this method will use the default registry path stored in the CWinAppEx
object. To get the default registry path, use CWinAppEx::GetRegistryBase.
CWinAppEx::CWinAppEx
Constructs a CWinAppEx
object.
CWinAppEx(BOOL bResourceSmartUpdate = FALSE);
Parameters
bResourceSmartUpdate
[in] A Boolean parameter that specifies whether the workspace object should detect and handle resource updates.
Remarks
The CWinAppEx
class has initialization methods, provides functionality for saving and loading application information to the registry, and controls global application settings. It also enables you to use global managers such as the CKeyboardManager
Class and the CUserToolsManager
Class. Each application can have only one instance of the CWinAppEx
class.
CWinAppEx::EnableLoadWindowPlacement
Specifies whether the application will load the initial size and location of the main frame window from the registry.
void EnableLoadWindowPlacement(BOOL bEnable = TRUE);
Parameters
bEnable
[in] Specifies whether the application loads the initial size and location of the main frame window from the registry.
Remarks
By default, the size and location of the main frame is loaded from the registry together with other application settings. This occurs during CWinAppEx::LoadState
. If you don't want to load the initial window placement from the registry, call this method with bEnable
set to FALSE
.
CWinAppEx::EnableTearOffMenus
Creates and initializes a CMenuTearOffManager
object.
BOOL EnableTearOffMenus(
LPCTSTR lpszRegEntry,
const UINT uiCmdFirst,
const UINT uiCmdLast);
Parameters
lpszRegEntry
[in] A string that contains the path of a registry key. The application uses this registry key to store information for the tear-off menus.
uiCmdFirst
[in] The first tear off menu ID.
uiCmdLast
[in] The last tear off menu ID.
Return Value
TRUE
if the CMenuTearOffManager
is created and initialized successfully; FALSE
if an error occurs or if the CMenuTearOffManager
already exists.
Remarks
Use this function to enable tear-off menus in your application. You should call this function from InitInstance
.
CWinAppEx::EnableUserTools
Enables the user to create custom menu commands that reduce keystrokes in your application. This method creates a CUserToolsManager
object.
BOOL EnableUserTools(
const UINT uiCmdToolsDummy,
const UINT uiCmdFirst,
const UINT uiCmdLast,
CRuntimeClass* pToolRTC = RUNTIME_CLASS(CUserTool),
UINT uArgMenuID = 0,
UINT uInitDirMenuID = 0);
Parameters
uiCmdToolsDummy
[in] An unsigned integer that the framework uses as a placeholder for the command ID of the user tools menu.
uiCmdFirst
[in] The command ID for the first user tool command.
uiCmdLast
[in] The command ID for the last user tool command.
pToolRTC
[in] A class that the CUserToolsManager
object uses to create new user tools.
uArgMenuID
[in] The argument menu ID.
uInitDirMenuID
[in] The menu ID for the initial tool directory.
Return Value
TRUE
if the method creates and initializes a CUserToolsManager
object; FALSE
if the method fails or if a CUserToolsManager
object already exists.
Remarks
When you enable user-defined tools, the framework automatically supports a dynamic menu that can be extended during customization. The framework associates each new item with an external command. The framework invokes these commands when the user selects the appropriate item from the Tools menu.
Every time the user adds a new item, the framework creates a new object. The class type for the new object is defined by pToolRTC
. The pToolRTC
class type must be derived from the CUserTool
Class.
For more information about user tools and how to incorporate them into your application, see User-defined Tools.
CWinAppEx::ExitInstance
virtual int ExitInstance();
Return Value
Remarks
CWinAppEx::GetBinary
Reads binary data from a specified registry key.
BOOL GetBinary(
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Parameters
lpszEntry
[in] A string that contains the name of a registry key.
ppData
[out] A pointer to the buffer that the method fills with the binary data.
pBytes
[out] A pointer to an unsigned integer that the method uses to write the number of bytes read.
Return Value
TRUE
if successful; FALSE
otherwise.
Remarks
This method reads binary data written to the registry. To write data to the registry, use the methods CWinAppEx::WriteBinary
and CWinAppEx::WriteSectionBinary
.
The lpszEntry
parameter is the name of a registry entry located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetContextMenuManager
Returns a pointer to the global CContextMenuManager
object.
CContextMenuManager* GetContextMenuManager();
Return Value
A pointer to the global CContextMenuManager
object.
Remarks
If the CContextMenuManager
object isn't initialized, this function calls CWinAppEx::InitContextMenuManager
before it returns a pointer.
CWinAppEx::GetDataVersion
int GetDataVersion() const;
Return Value
Remarks
CWinAppEx::GetDataVersionMajor
Returns the major version of the application that is saved in the Windows registry when you call CWinAppEx::SaveState
.
int GetDataVersionMajor() const;
Return Value
An integer value that contains the major version number.
CWinAppEx::GetDataVersionMinor
Returns the minor version of the application that is saved in the Windows registry when you call CWinAppEx::SaveState
.
int GetDataVersionMinor() const;
Return Value
An integer value that contains the minor version number.
CWinAppEx::GetInt
Reads integer data from a specified registry key.
int GetInt(
LPCTSTR lpszEntry,
int nDefault = 0);
Parameters
lpszEntry
[in] A string that contains the name of a registry entry.
nDefault
[in] The default value that the method returns if the specified registry entry doesn't exist.
Return Value
The registry data if the method was successful; otherwise nDefault
.
Remarks
This method reads integer data from the registry. If there's no integer data associated with the registry key indicated by lpszEntry
, this method returns nDefault
. To write data to the registry, use the methods CWinAppEx::WriteSectionInt
and CWinAppEx::WriteInt
.
The lpszEntry
parameter is the name of a registry entry located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetKeyboardManager
Returns a pointer to the global CKeyboardManager
object.
CKeyboardManager* GetKeyboardManager();
Return Value
A pointer to the global CKeyboardManager
object.
Remarks
If the keyboard manager isn't initialized, this function calls CWinAppEx::InitKeyboardManager
before it returns a pointer.
CWinAppEx::GetMouseManager
Returns a pointer to the global CMouseManager
object.
CMouseManager* GetMouseManager();
Return Value
A pointer to the global CMouseManager
object.
Remarks
If the mouse manager isn't initialized, this function calls CWinAppEx::InitMouseManager
before it returns a pointer.
CWinAppEx::GetObject
Reads CObject
-dervied data from the registry.
BOOL GetObject(
LPCTSTR lpszEntry,
CObject& obj);
Parameters
lpszEntry
[in] A string that contains the relative path of a registry entry.
obj
[out] A reference to a CObject
. The method uses this reference to store the registry data.
Return Value
Nonzero if the method was successful; otherwise 0.
Remarks
This method reads data from the registry that is derived from CObject
. To write CObject
data to the registry, use either CWinAppEx::WriteObject
or CWinAppEx::WriteSectionObject
.
The lpszEntry
parameter is the name of a registry entry that is located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetRegistryBase
Retrieves the default registry path for the application.
LPCTSTR GetRegistryBase();
Return Value
A string that contains the path of the default registry location.
Remarks
All methods of the CWinAppEx
Class that access the registry start in a default location. Use this method to retrieve a path of the default registry location. Use CWinAppEx::SetRegistryBase
to change the default registry location.
CWinAppEx::GetRegSectionPath
Creates and returns the absolute path of a registry key.
CString GetRegSectionPath(LPCTSTR szSectionAdd = _T(""));
Parameters
szSectionAdd
[in] A string that contains the relative path of a registry key.
Return Value
A CString
that contains the absolute path of a registry key.
Remarks
This method defines the registry key's absolute path by appending the relative path in szSectionAdd
to the default registry location for your application. To get the default registry key, use the method CWinAppEx::GetRegistryBase
.
CWinAppEx::GetSectionBinary
Reads binary data from the registry.
BOOL GetSectionBinary(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
LPBYTE* ppData,
UINT* pBytes);
Parameters
lpszSubSection
[in] A string that contains the relative path of a registry key.
lpszEntry
[in] A string that contains the value to read.
ppData
[out] A pointer to the buffer where the method stores the data.
pBytes
[out] A pointer to an unsigned integer. The method writes the size of ppData
to this parameter.
Return Value
TRUE
if successful; otherwise FALSE
.
Remarks
This method reads binary data that is written to the registry using the methods CWinAppEx::WriteBinary
and CWinAppEx::WriteSectionBinary
.
The lpszSubSection
parameter isn't an absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetSectionInt
Reads integer data from the registry.
int GetSectionInt(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
int nDefault = 0);
Parameters
lpszSubSection
[in] A string that contains the relative path of a registry key.
lpszEntry
[in] A string that contains the value to read.
nDefault
[in] The default value to return if the specified value doesn't exist.
Return Value
The integer data that is stored in the specified registry value; nDefault
if the data doesn't exist.
Remarks
Use the methods CWinAppEx::WriteInt
and CWinAppEx::WriteSectionInt
to write integer data to the registry.
The lpszSubSection
parameter isn't an absolute path of a registry entry. It's a relative path that is added to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetSectionObject
Reads CObject
registry data from the registry.
BOOL GetSectionObject(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
CObject& obj);
Parameters
lpszSubSection
[in] A string that contains the relative path of a registry key.
lpszEntry
[in] A string that contains the value to read.
obj
[out] A reference to a CObject
. The method uses this CObject
to store the registry data.
Return Value
Nonzero if successful; otherwise 0.
Remarks
This method reads data from the registry. The data read is CObject
data, or data for a class derived from CObject
. To write CObject
data to the registry, use either CWinAppEx::WriteObject
or CWinAppEx::WriteSectionObject
.
The lpszSubSection
parameter isn't an absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetSectionString
Reads string data from the registry.
CString GetSectionString(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
LPCTSTR lpszDefault = _T(""));
Parameters
lpszSubSection
[in] A string that contains the relative path of a registry key.
lpszEntry
[in] A string that contains the value to read.
lpszDefault
[in] The default value to return if the specified value doesn't exist.
Return Value
The string data stored in the specified registry value if the data exists; otherwise lpszDefault
.
Remarks
This method reads string data written to the registry. Use CWinAppEx::WriteString
and CWinAppEx::WriteSectionString
to write string data to the registry.
The lpszSubSection
parameter isn't an absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetShellManager
Returns a pointer to the global CShellManager
object.
CShellManager* GetShellManager();
Return Value
A pointer to the global CShellManager
object.
Remarks
If the CShellManager
object isn't initialized, this function calls CWinAppEx::InitShellManager
before it returns a pointer.
CWinAppEx::GetString
Reads string data from a specified registry key.
CString GetString(
LPCTSTR lpszEntry,
LPCTSTR lpzDefault= _T(""));
Parameters
lpszEntry
[in] A string that contains the name of a registry key
lpzDefault
[in] The default value that the method returns if the specified registry entry doesn't exist.
Return Value
The string data stored in the registry if successful; lpszDefault
otherwise.
Remarks
This method reads string data written to the registry. To write data to the registry, use the methods CWinAppEx::WriteString
or CWinAppEx::WriteSectionString
.
The lpszEntry
parameter is the name of a registry entry located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::GetTooltipManager
Returns a pointer to the global CTooltipManager
object.
CTooltipManager* GetTooltipManager();
Return Value
A pointer to the global CTooltipManager
object.
Remarks
If the CTooltipManager
object isn't initialized, this function calls CWinAppEx::InitTooltipManager
before it returns a pointer.
CWinAppEx::GetUserToolsManager
Returns a pointer to the global CUserToolsManager
object.
CUserToolsManager* GetUserToolsManager();
Return Value
A pointer to the global CUserToolsManager
object; NULL
if user tools management isn't enabled for the application.
Remarks
Before you retrieve a pointer to the CUserToolsManager
object, you must initialize the manager by calling CWinAppEx::EnableUserTools
.
CWinAppEx::InitContextMenuManager
Initializes the CContextMenuManager
object.
BOOL InitContextMenuManager();
Return Value
Nonzero if the method creates the CContextMenuManager
object; 0 if the CContextMenuManager
object already exists.
Remarks
If you call CWinAppEx::GetContextMenuManager
, the default implementation of that method calls InitContextMenuManager
.
If your application already has a context menu manager and you call InitContextMenuManager
, your application will have an ASSERT
failure. Therefore, you shouldn't call InitContextMenuManager
if you create a CContextMenuManager
object directly. If you aren't using a custom CContextMenuManager
, you should use GetContextMenuManager
to create a CContextMenuManager
object.
CWinAppEx::InitKeyboardManager
Initializes the CKeyboardManager
object.
BOOL InitKeyboardManager();
Return Value
Nonzero if the method creates the CKeyboardManager
object; 0 if the CKeyboardManager
object already exists.
Remarks
If you call CWinAppEx::GetKeyboardManager
, the default implementation of that method calls InitKeyboardManager
.
If your application already has a keyboard manager and you call InitKeyboardManager
, your application will have an ASSERT
failure. Therefore, you shouldn't call InitKeyboardManager
if you create a CKeyboardManager
object directly. If you aren't using a custom CKeyboardManager
, you should use GetKeyboardManager
to create a CKeyboardManager
object.
CWinAppEx::InitMouseManager
Initializes the CMouseManager
object.
BOOL InitMouseManager();
Return Value
Nonzero if the method creates the CMouseManager
object; 0 if the CMouseManager
object already exists.
Remarks
If you call CWinAppEx::GetMouseManager
, the default implementation of that method calls InitMouseManager
.
If your application already has a mouse manager and you call InitMouseManager
, your application will have an ASSERT
failure. Therefore you shouldn't call InitMouseManager
if you create a CMouseManager
object directly. If you aren't using a custom CMouseManager
, you should use GetMouseManager
to create a CMouseManager
object.
CWinAppEx::InitShellManager
Initializes the CShellManager
object.
BOOL InitShellManager();
Return Value
Nonzero if the method creates the CShellManager
object; 0 if the CShellManager
object already exists.
Remarks
If you call CWinAppEx::GetShellManager
, the default implementation of that method calls InitShellManager
.
If your application already has a shell manager and you call InitShellManager
, your application raises an ASSERT
failure. Therefore, don't call InitShellManager
if you create a CShellManager
object directly. If you aren't using a custom CShellManager
, use GetShellManager
to create a CShellManager
object.
CWinAppEx::InitTooltipManager
Initializes the CTooltipManager
object.
BOOL InitTooltipManager();
Return Value
Nonzero if the method creates the CTooltipManager
object; 0 if the CTooltipManager
object already exists.
Remarks
If you call CWinAppEx::GetTooltipManager
, the default implementation of that method calls InitTooltipManager
.
If your application already has a tooltip manager and you call InitTooltipManager
, your application will have an ASSERT
failure. Therefore, you shouldn't call InitTooltipManager
if you create a CTooltipManager
object directly. If you aren't using a custom CTooltipManager
, you should use GetTooltipManager
to create a CTooltipManager
object.
CWinAppEx::IsResourceSmartUpdate
BOOL IsResourceSmartUpdate() const;
Return Value
Remarks
CWinAppEx::IsStateExists
Indicates whether the specified key is in the registry.
BOOL IsStateExists(LPCTSTR lpszSectionName);
Parameters
lpszSectionName
[in] A string that contains a path of a registry key.
Return Value
Nonzero if the key is in the registry; otherwise 0.
CWinAppEx::LoadCustomState
The framework calls this method after it loads the state of the application from the registry.
virtual void LoadCustomState();
Remarks
Override this method if you want to do any processing after the application loads the state from the registry. By default, this method does nothing.
In order to load custom state information from the registry, the information must first be saved by using CWinAppEx::SaveCustomState
.
CWinAppEx::LoadState
Reads the application state from the Windows registry.
BOOL LoadState(
CMDIFrameWndEx* pFrame,
LPCTSTR lpszSectionName = NULL);
BOOL LoadState(
CFrameWndEx* pFrame,
LPCTSTR lpszSectionName = NULL);
BOOL LoadState(
COleIPFrameWndEx* pFrame,
LPCTSTR lpszSectionName = NULL);
virtual BOOL LoadState(
LPCTSTR lpszSectionName = NULL,
CFrameImpl* pFrameImpl = NULL);
Parameters
pFrame
[in] A pointer to a frame window object. The method applies the state information in the registry to this frame window.
lpszSectionName
[in] A string that contains the relative path of a registry key.
pFrameImpl
[in] A pointer to a CFrameImpl
object. The method applies the state information in the registry to this frame window.
Return Value
Nonzero if successful; 0 otherwise.
Remarks
This method loads the state of the application and any state information for a frame window. The loaded information for the frame window is applied to the supplied frame window. If you don't supply a frame window, only the application state information is loaded. The application information includes the state of the CMouseManager
Class, CContextMenuManager
Class, CKeyboardManager
Class, and the CUserToolsManager
Class.
The default implementation of CFrameImpl::OnLoadFrame
calls LoadState
.
The lpszSectionName
parameter isn't the absolute path for a registry entry. It's a relative path that is added to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::LoadWindowPlacement
Called by the framework when it loads the size and location of the main frame window from the registry.
virtual BOOL LoadWindowPlacement(
CRect& rectNormalPosition,
int& nFlags,
int& nShowCmd);
Parameters
rectNormalPosition
[out] A rectangle that contains the coordinates of the main frame window when it is in the restored position.
nFlags
[out] Flags that control the position of the minimized window and how the operating system switches between a minimized window and a restored window.
nShowCmd
[out] An integer that specifies the show state of the window. For more information about possible values, see CWnd::ShowWindow
.
Return Value
Nonzero if successful; 0 otherwise.
Remarks
By default, MFC automatically loads the previous position and state of the main frame window when the application starts. For more information about how this information is stored in the registry, see CWinAppEx::StoreWindowPlacement
.
Override this method if you want to load additional information about the main frame window.
CWinAppEx::m_bForceImageReset
Specifies whether the framework resets all toolbar images when it reloads the frame window that contains the toolbar.
BOOL m_bForceImageReset;
Remarks
The m_bForceImageReset
data member is a protected variable.
CWinAppEx::OnAppContextHelp
The framework calls this method when the user requests context help for the Customization dialog box.
virtual void OnAppContextHelp(
CWnd* pWndControl,
const DWORD dwHelpIDArray[]);
Parameters
pWndControl
[in] A pointer to a window object for which the user invoked context help.
dwHelpIDArray[]
[in] A reserved value.
Remarks
This method is currently reserved for future use. The default implementation does nothing and it's currently not called by the framework.
CWinAppEx::OnClosingMainFrame
The framework calls this method when a frame window is processing WM_CLOSE
.
virtual void OnClosingMainFrame(CFrameImpl* pFrameImpl);
Parameters
pFrameImpl
[in] A pointer to a CFrameImpl
object.
Remarks
The default implementation of this method saves the state of pFrameImpl
.
CWinAppEx::OnViewDoubleClick
Calls the user-defined command that is associated with a view when the user double-clicks anywhere within that view.
virtual BOOL OnViewDoubleClick(
CWnd* pWnd,
int iViewId);
Parameters
pWnd
[in] A pointer to an object derived from the CView
Class.
iViewId
[in] The view ID.
Return Value
TRUE
if the framework finds a command; otherwise FALSE
.
Remarks
In order to support custom mouse behavior, you must call this function when you process the WM_LBUTTONDBLCLK
message. This method will execute the command associated with the view ID supplied by iViewId
. For more information about custom mouse behavior, see Keyboard and Mouse Customization.
CWinAppEx::OnWorkspaceIdle
virtual BOOL OnWorkspaceIdle(CWnd*);
Parameters
[in] CWnd*
\
Return Value
Remarks
CWinAppEx::PreLoadState
The framework calls this method immediately before it loads the state of the application from the registry.
virtual void PreLoadState();
Remarks
Override this method if you want to do any processing immediately before the framework loads the application state.
CWinAppEx::PreSaveState
The framework calls this method immediately before it saves the application state.
virtual void PreSaveState();
Remarks
Override this method if you want to do any processing immediately before the framework saves the application state.
CWinAppEx::ReloadWindowPlacement
Reloads the size and location of a window from the registry.
virtual BOOL ReloadWindowPlacement(CFrameWnd* pFrame);
Parameters
pFrame
[in] A pointer to a frame window.
Return Value
Nonzero if the method was successful; 0 if the load failed or there's no data to load.
Remarks
Use the function CWinAppEx::StoreWindowPlacement
to write the size and location of a window to the registry.
CWinAppEx::SaveCustomState
The framework calls this method after it saves the state of the application to the registry.
virtual void SaveCustomState();
Remarks
Override this method if you want to do any processing after the application saves the state to the registry. By default, this method does nothing.
CWinAppEx::SaveState
Writes the application state to the Windows registry.
virtual BOOL SaveState(
LPCTSTR lpszSectionName = NULL,
CFrameImpl* pFrameImpl = NULL);
BOOL SaveState(
CMDIFrameWndEx* pFrame,
LPCTSTR lpszSectionName = NULL);
BOOL SaveState(
CFrameWndEx* pFrame,
LPCTSTR lpszSectionName = NULL);
BOOL SaveState(
COleIPFrameWndEx* pFrame,
LPCTSTR lpszSectionName = NULL);
Parameters
lpszSectionName
[in] A string that contains the relative path of a registry key.
pFrameImpl
[in] A pointer to a CFrameImpl
object. This frame is saved to the Windows registry.
pFrame
[in] A pointer to a frame window object. This frame is saved to the Windows registry.
Return Value
TRUE
if successful; FALSE
otherwise.
Remarks
This method saves the state of the application and any state information for the provided frame window. If you don't provide a frame window, the method only saves the application state. The application information includes the state of the CMouseManager
Class, CContextMenuManager
Class, CKeyboardManager
Class, and the CUserToolsManager
Class.
The lpszSectionName
parameter isn't the absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
CWinAppEx::SetRegistryBase
Sets the default registry path for the application.
LPCTSTR SetRegistryBase(LPCTSTR lpszSectionName = NULL);
Parameters
lpszSectionName
[in] A string that contains the path of a registry key.
Return Value
A string that contains the path of the default registry location.
Remarks
All methods of the CWinAppEx
Class that access the registry start in a default location. Use this method to change that default registry location. Use CWinAppEx::GetRegistryBase
to retrieve the default registry location.
CWinAppEx::ShowPopupMenu
Displays a popup menu.
virtual BOOL ShowPopupMenu(
UINT uiMenuResId,
const CPoint& point,
CWnd* pWnd);
Parameters
uiMenuResId
[in] A menu resource ID.
point
[in] A CPoint
that specifies the position of the menu in screen coordinates.
pWnd
[in] A pointer to the window that owns the popup menu.
Return Value
Nonzero if the popup menu is displayed successfully; 0 otherwise.
Remarks
This method displays the menu associated with uiMenuResId
.
To support popup menus, you must have a CContextMenuManager
object. If you haven't initialized the CContextMenuManager
object, ShowPopupMenu
will fail.
CWinAppEx::StoreWindowPlacement
Called by the framework to write the size and location of the main frame window to the registry.
virtual BOOL StoreWindowPlacement(
const CRect& rectNormalPosition,
int nFlags,
int nShowCmd);
Parameters
nFlags
[in] Flags that control the position of the minimized window and how the operating system switches between a minimized window and a restored window.
nShowCmd
[in] An integer that specifies the show state of the window. For more information about possible values, see CWnd::ShowWindow
.
rectNormalPosition
[in] A rectangle that contains the coordinates of the main frame window when it is in the restored state.
Return Value
Nonzero if successful; 0 otherwise.
Remarks
By default, MFC automatically saves the position and state of the main frame window before the application exits. This information is stored in the Windows registry under the WindowPlacement key in the default registry location for your application. For more information about the default registry location of your application, see CWinAppEx::GetRegistryBase
.
Override this method if you want to store additional information about the main frame window.
CWinAppEx::WriteBinary
Writes binary data to the registry.
BOOL WriteBinary(
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Parameters
lpszEntry
[in] A string that contains the name of a registry key.
pData
[in] The data to store.
nBytes
[in] The size of pData
in bytes.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszEntry
parameter is the name of a registry entry that is located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
If the key specified by lpszEntry
doesn't exist, this method will create it.
CWinAppEx::WriteInt
Writes numeric data to the registry.
BOOL WriteInt(
LPCTSTR lpszEntry,
int nValue);
Parameters
lpszEntry
[in] A string that contains the name of a registry key.
nValue
[in] The data to store.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszEntry
parameter is the name of a registry entry located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
If the key specified by lpszEntry
doesn't exist, this method will create it.
CWinAppEx::WriteObject
Writes data derived from the CObject
Class to the registry.
BOOL WriteObject(
LPCTSTR lpszEntry,
CObject& obj);
Parameters
lpszEntry
[in] A string that contains the value to set.
obj
[in] A reference to CObject
data that the method will store.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
This method writes the obj
data to the specified value under the default registry key. Use CWinAppEx::GetRegistryBase
to determine the current registry key.
CWinAppEx::WriteSectionBinary
Writes binary data to a value in the registry.
BOOL WriteSectionBinary(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
LPBYTE pData,
UINT nBytes);
Parameters
lpszSubSection
[in] A string that contains the name of a registry key
lpszEntry
[in] A string that contains the value to set.
pData
[in] The data to write to the registry.
nBytes
[in] The size of pData
in bytes.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszSubSection
parameter isn't the absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
If the key specified by lpszEntry
doesn't exist, this method will create it.
CWinAppEx::WriteSectionInt
Writes numeric data to the registry.
BOOL WriteSectionInt(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
int nValue);
Parameters
lpszSubSection
[in] A string that contains the relative path of a registry key.
lpszEntry
[in] A string that contains the value to set.
nValue
[in] The data to write to the registry.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszSubSection
parameter isn't an absolute path for a registry entry. It's a relative path that is appended to the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
If the key specified by lpszEntry
doesn't exist, this method will create it.
CWinAppEx::WriteSectionObject
Writes data derived from the CObject
Class to a specific registry value.
BOOL WriteSectionObject(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
CObject& obj);
Parameters
lpszSubSection
[in] A string that contains the name of a registry key.
lpszEntry
[in] A string that contains the name of the value to set.
obj
[in] The data to store.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszSubSection
parameter isn't an absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
, respectively.
If the value specified by lpszEntry
doesn't exist under the registry key specified by lpszSubSection
, this method will create that value.
CWinAppEx::WriteSectionString
Writes string data to a value in the registry.
BOOL WriteSectionString(
LPCTSTR lpszSubSection,
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Parameters
lpszSubSection
[in] A string that contains the name of a registry key.
lpszEntry
[in] A string that contains the value to set.
lpszValue
[in] The string data to write to the registry.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszSubSection
parameter isn't an absolute path for a registry entry. It's a relative path that is appended to the end of the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
, respectively.
If the value specified by lpszEntry
doesn't exist under lpszSubSection
, this method will create it.
CWinAppEx::WriteString
Writes string data to the registry.
BOOL WriteString(
LPCTSTR lpszEntry,
LPCTSTR lpszValue);
Parameters
lpszEntry
[in] A string that contains the name of a registry key.
lpszValue
[in] The data to store.
Return Value
TRUE
if this method is successful; otherwise FALSE
.
Remarks
The lpszEntry
parameter is the name of a registry entry located under the default registry key for your application. To get or set the default registry key, use the methods CWinAppEx::GetRegistryBase
and CWinAppEx::SetRegistryBase
respectively.
If the key specified by lspzEntry
doesn't exist, this method will create it.
See also
Hierarchy Chart
Classes
CWinApp
Class
CMouseManager
Class
CContextMenuManager
Class
CKeyboardManager
Class
CUserToolsManager
Class