Даём возможность пользователю изменять ToolBarАвтор: Deepak Khajuria
ОписаниеКласс CToolbarEx поддерживает основные типы
изменения тулбара (как в IE) с элементами
управления на нём. К тому же он может скрывать
некоторые контролы, когда тулбар расположен
вертикально (например, выпадающий список). #include "ToolBarEx.h" . . . // CToolBar m_wndToolBar; 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
|