Для работы с панелями управления в состав библиотеки MFC включены два класса - CToolBar и CDialogBar. Они оба наследуются от базового класса CControlBar, реализующего основные функции панели управления. Кроме того, от базового класса наследуется еще один класс - CStatusBar. Он предназначен для работы с панелью состояния и будет рассматриваться позже.
Класс CToolBar представляет панель управления, состоящую из кнопок. При желании можно в панель управления класса CToolBar помимо кнопок включить и другие органы управления, например, списки или поля редактирования, однако такая возможность требует дополнительного программирования. Если необходимо создать панель, содержащую различные органы управления, а не только кнопки, то удобнее воспользоваться классом CDialogBar. Этот класс позволяет создать панель управления на основе шаблона диалоговой панели и будет рассматриваться позже.
Кнопки панели управления могут работать как кнопки, как переключатели и как переключатели с зависимой фиксацией (радио-кнопки). Тип кнопок панели управления выбирается методами класса CToolBar, например, метод SetButtonStyle.
Чтобы создать панель управления, необходимо сначала определить объект класса CToolBar, который будет представлять данную панель. Можно создать объект и нового класса, наследованного от CToolBar, в котором новыми дополнительными методами расширяются возможности класса CToolBar.
Обычно объект CToolBar включают как элемент главного окна приложения, например как элемент класса, наследованного от класса CFrameWnd (или CMDIFrameWnd - в зависимости от интерфейса приложения), например:
class CMainFrame : public CMDIFrameWnd { protected: CToolBar m_wndToolBar; // панель управления // другие описания класса ....... };
После того, как объект класса CToolBar образован, следует вызвать для него метод Create, который создает панель управления:
BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, UINT nID = AFX_IDW_TOOLBAR );
В качестве параметров методу Create указываются различные характеристики создаваемой панели.
Только первый параметр является обязательным - в нем указывается идентификатор родительского окна для панели управления.
Необязательный параметр dwStyle определяет, как будет отображаться панель управления. Рассмотрим некоторые флаги, комбинации которых можно использовать для задания характеристик панели: