Даём возможность
пользователю изменять ToolBar
Автор: Deepak Khajuria
Описание
Класс CToolbarEx поддерживает основные типы
изменения тулбара (как в IE) с элементами
управления на нём. К тому же он может скрывать
некоторые контролы, когда тулбар расположен
вертикально (например, выпадающий список).
Для использования класса в своём проекте,
проделайте следующие шаги:
1. Добавьте в проект ToolBarEx.cpp и ToolBarEx.h.
2. Включите ToolbarEx.h в MainFrame.h и замените CToolBar на
CToolBarEx в CMainFrame
#include "ToolBarEx.h"
. . .
CToolBarEx m_wndToolBar;
3. В методе OnCreate класса CMainFrame, после того как
создание Toolbar завершено(включая элементы
управления), вызовите SetToolBarInfoForCustomization для
установки дополнительных элементов в тулбаре.
Эта функция будет вызвана после создания тулбара
и элементов управления.
CRect rt(0,0,200,120);
m_pComboBox =(CComboBox *) m_wndToolBar.InsertControl(RUNTIME_CLASS(CComboBox),
_T(""),rt,ID_FIND,WS_VSCROLL|CBS_DROPDOWNLIST);
m_pComboBox->AddString(_T("One"));
m_pComboBox->AddString(_T("Two"));
m_pComboBox->AddString(_T("Three"));
m_wndToolBar.AddDropDownButton(ID_OP,IDR_OP,TRUE);
m_wndToolBar.SetToolBarInfoForCustomization();
4. В заключение восстанавливаем последние
записанные данные тулбара
m_wndToolBar.RestoreState();
Так же можно добавить SaveState в OnClose класса CMainFrame.
Методы и переменные класса
CWnd* InsertControl(CRuntimeClass* pClass,LPCTSTR lpszWindowName,
CRect& rect,UINT nID,DWORD dwStyle );
Функция создаёт и добавляет контрол в Toolbar и
возвращает указатель на добавленное окно. В
параметре rect помещается только ширина и высота.
CWnd* InsertControl(CWnd* pCtrl,CRect& rect,UINT nID);
Эта функция добавляет уже созданный элемент
управления в Toolbar. В параметре rect помещается
только ширина и высота.
BOOL AddDropDownButton(UINT nIDButton,UINT nIDMenu,BOOL bArrow=TRUE);
Это функция добавления кнопки для выпадающего
списка с меню, ассоциированного с ним. Если Вы
хотите, чтобы стрелочка была видна, то установите
bArrow в TRUE.
void SetToolBarInfoForCustomization();
Эта функция устанавливает информацию для
изменения Toolbar. Имена, используемые для кнопок в
диалоговом окне изменения тулбара берутся из
Tooltip кнопки. (Работать с ними желательно в
редакторе ресурсов) Вызывайте эту функцию после
создания Tolobar. После этого будут добавлены
контролы и выпадающий список.
void SaveState()
Сохраняет состояние тулбара в реестре.
void RestoreState()
Восстанавливает состояние тулбара из реестра.
BOOL m_bShowDropdownArrowWhenVertical;
Флаг, указывающий, будет ли видим выпадающий
список при вертикальном расположении тулбара. По
умолчанию значение FALSE
BOOL m_bHideChildWndOnVertical;
Флаг элемента управления, показывающий - будет
ли он видим при вертикальном расположение
тулбара. По умолчанию значение TRUE
|