CDockState Class

A serialized CObject class that loads, unloads, or clears the state of one or more docking control bars in persistent memory (a file).

Syntax

class CDockState : public CObject

Members

Public Methods

Name Description
CDockState::Clear Clears the dock state information.
CDockState::GetVersion Retrieves the version number of the stored bar state.
CDockState::LoadState Retrieves state information from the registry or .INI file.
CDockState::SaveState Saves state information to the registry or INI file.

Public Data Members

Name Description
CDockState::m_arrBarInfo Array of pointers to the stored dock state information with one entry for each control bar.

Remarks

The dock state includes the size and position of the bar and whether or not it is docked. When retrieving the stored dock state, CDockState checks the bar's position and, if the bar is not visible with the current screen settings, CDockState scales the bar's position so that it is visible. The main purpose of CDockState is to hold the entire state of a number of control bars and to allow that state to be saved and loaded either to the registry, the application's .INI file, or in binary form as part of a CArchive object's contents.

The bar can be any dockable control bar, including a toolbar, status bar, or dialog bar. CDockState objects are written and read to or from a file via a CArchive object.

CFrameWnd::GetDockState retrieves the state information of all the frame window's CControlBar objects and puts it into the CDockState object. You can then write the contents of the CDockState object to storage with Serialize or CDockState::SaveState. If you later want to restore the state of the control bars in the frame window, you can load the state with Serialize or CDockState::LoadState, then use CFrameWnd::SetDockState to apply the saved state to the frame window's control bars.

For more information on docking control bars, see the articles Control Bars, Toolbars: Docking and Floating, and Frame Windows.

Inheritance Hierarchy

CObject

CDockState

Requirements

Header: afxadv.h

CDockState::Clear

Call this function to clear all docking information stored in the CDockState object.

void Clear();

Remarks

This includes not only whether the bar is docked or not, but the bar's size and position and whether or not it is visible.

CDockState::GetVersion

Call this function to retrieve the version number of the stored bar state.

DWORD GetVersion();

Return Value

1 if the stored bar information is older than current bar state; 2 if the stored bar information is the same as the current bar state.

Remarks

Version support enables a revised bar to add new persistent properties and still be able to detect and load the persistent state created by an earlier version of the bar.

CDockState::LoadState

Call this function to retrieve state information from the registry or .INI file.

void LoadState(LPCTSTR lpszProfileName);

Parameters

lpszProfileName
Points to a null-terminated string that specifies the name of a section in the initialization file or a key in the Windows registry where state information is stored.

Remarks

The profile name is the section of the application's .INI file or the registry that contains the bars' state information. You can save control bar state information to the registry or .INI file with SaveState.

CDockState::m_arrBarInfo

A CPtrArray object that is an array of pointers to the stored control bar information for each control bar that has saved state information in the CDockState object.

CPtrArray m_arrBarInfo;

CDockState::SaveState

Call this function to save the state information to the registry or .INI file.

void SaveState(LPCTSTR lpszProfileName);

Parameters

lpszProfileName
Points to a null-teminated string that specifies the name of a section in the initialization file or a key in the Windows registry where state information is stored.

Remarks

The profile name is the section of the application's .INI file or the registry that contains the control bar's state information. SaveState also saves the current screen size. You can retrieve control bar information from the registry or .INI file with LoadState.

See also

CObject Class
Hierarchy Chart