Шаг 253 - Обобщения - классы панелей элементов

Панели элементов есть практически в каждом приложении, как минимум это ToolBar и StatusBar. Но мы с Вами еще рассматривали и DialogBar и ReBar, что у них общего ??? Общий у них предок в виде класса CContorlBar. Вот как это выглядит.

CWnd ----
	|
	CControlBar------
		    	|
			CToolBar
			CDialogBar
			CReBar
			CStatusBar
			COleResizeBar

Класс CControlBar содержит базовые функции по работе с панелями. Каждая панель естественно может содержать дочернии окна, так как и само окно. Например, общим свойством является фиксированная панель или плавающая, за что отвечает стиль. Кроме того панели умеют приспосабливаться под размер окна. Следует отметить, что начиная с версии MFC 4.0 для создания этих панелей используются возможности Windows 95, а не MFC. То есть эти панели на данный момент являются частью системы. Доступ к ним возможен через:

GetToolBarCtrl()
GetReBarCtrl() 
GetStatusBarCtrl()

Как я уже писал, чтобы добраться до полных функциональных возможностей элемента, так как в классе описаны довольно не все возможности. Функций много, но давайте посмотрим на некоторые на мой взгляд наиболее интересные. Пользователь всегда распологает панели элементов по своему вкусу. Как запомнить их расположения для повторного запуска приложения. Просто есть функции для сохранения информации в INI или реестре. Правда функции находятся в классе CFrameWnd. Так как фиксация панели производится в родительском окне.

void SaveBarState( LPCTSTR lpszProfileName ) const;
void LoadBarState( LPCTSTR lpszProfileName );

Функций для работы с CControlBar находящихся в классе рамки окна много, это и понятно, потому что именно она отвечает за отображения панелей. Вот еще одна функция, которая позволяет выводить или не выводить панели элементов на экран. На основе ее можно реализовать диалоговое окно, которое включает и отключает панели элементов. Вот она.

void ShowControlBar( CControlBar* pBar, BOOL bShow, BOOL bDelay );

Итак выводы такие. Управление панелями элементов производится из классов панелей элементов, из контролов панелей элементов и из класса рамки окна.

CControlBar    	-  Общие возможности
C*Bar	      	-  Сокращенные специфические  	 	
Get*Ctrl      	-  Полные специфические   
СFrameWnd	-  Общие по отображению и сохранению

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 30.10.2000