В настоящей записке описываются классы в MFC: общая CControlBar, CStatusBar, CToolBar, CDialogBarи CDockBar.
Полосы управления является CWnd-производный класс, который:
Панелей элементов управления поддерживают дополнительные стили:
Классы, производные от CControlBar предоставляют более интересным реализации:
Все управления панель объекты/windows будет дочерних окон некоторых родительского фрейма окна. Обычно они добавляются как свою сестру в клиентской области кадра (например, клиента MDI или представления). Важное значение имеет Идентификатор дочернего окна панели управления. По умолчанию макет панели управления работает только для панелей элементов управления с идентификаторами в диапазоне от AFX_IDW_CONTROLBAR_FIRST до AFX_IDW_CONTROLBAR_LAST. Обратите внимание, что, хотя есть ряд 256 управления бар IDs, первый 32 эти полосы управления идентификаторы являются специальными так как они напрямую поддерживаемых архитектура предварительного просмотра.
CControlBar класс предоставляет стандартные реализации для
Объекты панели управления C++ обычно будет внедрена как члены CFrameWnd производного класса и будет очищен при уничтожении родителя HWND и объект. Если вам нужно выделить объект элемента управления панель в куче, можно просто установить члена m_bAutoDestruct значение TRUE, чтобы сделать элемент управления панель "Удалить этот" при уничтожении HWND.
Важно Если вы создаете свой собственный CControlBar-производного класса, а не с помощью одного из MFC в производные классы, такие как CStatusBar, CToolBarили CDialogBar, вам нужно будет задать члена данных m_dwStyle . Это может быть сделано в переопределении Create:
/ / CMyControlBar является производным от CControlBar
BOOL CMyControlBar::Create (CWnd * pParentWnd, dwStyle типа DWORD, UI&NT nID)
{
nbsp; m_dwStyle = dwStyle;
.
.
.
}
Панель управления макета алгоритм
Панели макета алгоритм управления очень проста. В фрейме окна посылает сообщение WM_SIZEPARENT для всех детей в пределах панели управления. Наряду с этим сообщением передается указатель на родительского клиентского прямоугольника. Это сообщение отправляется детям в Z-порядке. Элемент управления бар детей использовать эту информацию для себя и для уменьшения размера родительского элемента клиентской области. Окончательный прямоугольник, что осталось для обычной клиентской области (меньше панелей) используется для позиционирования окна главных клиента (обычно клиент, представление или разделитель окне MDI).
Посмотреть CWnd::RepositionBars и CFrameWnd::RecalcLayout для получения более подробной информации.
MFC частных сообщений Windows, включая WM_SIZEPARENT, задокументированы в технической записке 24.
Строка состояния находится панель управления, которая имеет ряд областей вывода текста. Существует два основных способа использования панелей вывода текста:
(например, стандартное меню Справка сообщение линия). Они обычно доступны от нуля индекс
(к примеру, ШАПКА, NUM и SCRL показатели). Они обычно доступны по Идентификатору строки/команда.
Шрифт для строки состояния — 10 пунктов "MS Sans Serif» (определено в Windows интерфейс приложений разработки руководства или наиболее подходящий шрифт радистов швейцарский пропорционального шрифта 10 пунктов). В некоторых версиях Windows, таких как японское издание и Windows 4.0 выбранные шрифты являются разные.
Цвета, используемые в строке состояния также согласуются с рекомендация руководства по разработке приложений Windows интерфейс. Эти цвета не сложно закодировано и изменяются динамически в ответ на пользовательские настройки через панель управления.
| Пункт | Значение цвета Windows | По умолчанию RGB |
| Статус баре фон | COLOR_BTNFACE | RGB (192, 192, 192) |
| Текст строки состояния | COLOR_BTNTEXT | RGB (000, 000, 000) |
| Края сверху или слева в строке состояния | COLOR_BTNHIGHLIGHT | RGB (255, 255, 255) |
| Скрипт/правые края в строке состояния | COLOR_BTNSHADOW | RGB (128, 128, 128) |
Поддержка CCmdUI для CStatusBar
То, что показатели обычно обновляются — через механизм ON_UPDATE_COMMAND_UI . На время простоя строка состояния будет вызывать обработчик ON_UPDATE_COMMAND_UI с ID строки на панели индикаторов.
Можно вызвать обработчик ON_UPDATE_COMMAND_UI:
Обратитесь к классу CStatusBar в Справочник по библиотекам классов для подробной информации о CStatusBar создание и Настройка интерфейсов API. Большинство Настройка строки состояния должно быть сделано до того, как строка состояния изначально делается видимым.
В строке состояния поддерживает только один растягивание панель, обычно первая панель. Размер этой области действительно является минимальный размер. Если строка состояния превышает минимальный размер всех панелей, любые дополнительные ширина будет уделяться на растягивание панель. По умолчанию приложение с строка состояния имеет справа индикаторы для ЦОКОЛЯ, NUM и SCRL первая панель растягивание.
Панель инструментов является панелью управления со строкой кнопок растрового изображения, которые могут включать разделители. Поддерживаются два стиля кнопок: флажок кнопки и кнопки. Функции радио групп может быть построен с флажок кнопки и ON_UPDATE_COMMAND_UI.
Все растровое изображение кнопки в панели инструментов, взяты из одного растрового изображения. Этот рисунок должен содержать одно изображение или глифов для каждой кнопки. Обычно порядок изображений/глифов в точечный рисунок является том же порядке, в котором они рисуется на экране. (Это может быть изменен с помощью интерфейсов API настройки.)
Каждая кнопка должна быть одинакового размера. По умолчанию используется стандартная 24 x 22 пикселей. Каждый глиф изображения должны быть одного размера и должны быть бок-о-бок в битовой карте. Размер изображения/глиф по умолчанию — 16 x 15 пикселей. Таким образом для панели инструментов с 10 кнопок (с использованием стандартных размеров), вам необходимо, 160 пикселов в ширину и 15 пикселов точечного рисунка.
Каждая кнопка имеет один и только один образ/глиф. Различных кнопок и стилей (к примеру, нажата, вверх, вниз, инвалидов, инвалидов вниз, неопределенный) алгоритмически генерируется из этой одной изображения/глиф. В теории может использоваться любой цвет точечного рисунка или DIB. Алгоритм генерации различные кнопки указывается работает лучше всего, если исходное изображение оттенки серого цвета. Посмотрите на стандартной панели инструментов кнопки и клипарт кнопки панели инструментов, в примере MFC Генеральной КЛИПАРТ для примеров.
Цвета, используемые в панели инструментов также согласуются с рекомендацией руководства по разработке приложений Windows интерфейс. Эти цвета не сложно закодировано и изменяются динамически в ответ на пользовательские настройки через панель управления.
| Пункт | Значение цвета Windows | По умолчанию RGB |
| Фон панели инструментов | COLOR_BTNFACE | RGB(192,192,192) |
| Левый верхний края кнопки панели инструментов | COLOR_BTNHIGHLIGHT | RGB(255,255,255) |
| Панель инструментов кнопки скрипт/правые края | COLOR_BTNSHADOW | RGB(128,128,128) |
Кроме того точечный рисунок кнопки панели инструментов являются новые цвета, как если бы они были стандартные элементы управления button Windows. Это перекрашивания происходит при загрузке растрового изображения из ресурса и в ответ на изменение системных цветов в ответ на пользовательские настройки через панель управления. Следующих цветов в растровых инструментов будет новые автоматически, так что они должны использоваться с осторожностью. Если вы не хотите иметь часть вашего изображения Bitmap, новые цвета, используйте цвет, который тесно приближается один из сопоставленных RGB-значения. Сопоставление будет сделано на основе точных значений RGB.
| Значение RGB | Динамически сопоставленных значение цвета |
| RGB (000, 000, 000) | COLOR_BTNTEXT |
| RGB (128, 128, 128) | COLOR_BTNSHADOW |
| RGB (192, 192, 192) | COLOR_BTNFACE |
| RGB (255, 255, 255) | COLOR_BTNHIGHLIGHT |
Обратитесь к класса CToolBar Справочник по библиотекам классов для получения сведений о CToolBar создание и Настройка интерфейсов API. Большинство параметров настройки панелей инструментов должно быть сделано до того, как панель инструментов изначально делается видимым.
Интерфейсы API могут использоваться для корректировки на кнопку IDs, стили, настройки Ширина разделителя и какие изображения/глифов используется для какой кнопки. По умолчанию не требуется использовать эти интерфейсы API.
CCmdUI поддержка CToolBar
Как кнопки панели инструментов всегда обновляются — через механизм ON_UPDATE_COMMAND_UI . На время простоя панели инструментов будет вызывать обработчик ON_UPDATE_COMMAND_UI с Идентификатором команды этой кнопки. ON_UPDATE_COMMAND_UI для разделителей не вызывается, но она вызывается для кнопок и флажок кнопки.
Можно вызвать обработчик ON_UPDATE_COMMAND_UI:
Флажок кнопки-«AUTO» флажок кнопки; то есть когда пользователь нажимает их они будут немедленно изменить состояние. Проверка является государством, вниз или депрессии. Невозможно встроенный пользовательский интерфейс для изменения кнопки в состояние «неопределенный»; Это должно быть сделано посредством кода.
Настройка интерфейсов API позволит вам изменить состояние кнопки данной панели инструментов, предпочтительно следует изменить эти государства в обработчике ON_UPDATE_COMMAND_UI для команды, который представляет кнопку панели инструментов. Помните, что фоновой обработки приведет к изменению состояния кнопок панели инструментов с обработчиком ON_UPDATE_COMMAND_UI , поэтому любые изменения в этих государствах через SetButtonStyle может получить потеряны после очередного простоя.
Кнопки панели инструментов будет отправлять сообщения WM_COMMAND , как обычной кнопки и пункты меню и обычно обрабатываются ON_COMMAND обработчиком в том же классе, который предоставляет обработчик ON_UPDATE_COMMAND_UI.
Существует четыре стиля кнопки панели инструментов (TBBS_ значения) используется для отображения государств:
Шесть официальных стилей кнопок руководство дизайн интерфейса приложения Windows представлены следующие значения TBBS:
Диалоговая панель является элемент управления, содержащий стандартные элементы управления Windows. Оно действует как диалоговое окно, в котором содержит элементы управления и поддерживает переход между ними. Она также действует как диалоговое окно в том, что он использует диалоговое окно шаблон для представления на панели.
CDialogBar используется для панели инструментов Предварительный просмотр, который содержит стандартные кнопочные элементы управления.
Используя CDialogBar , как с помощью класса CFormView. Необходимо определить шаблон диалогового окна для диалоговой панели и удалять стили за исключением WS_CHILD. Обратите внимание, что диалоговое окно не должны быть видимыми.
Элемент управления уведомлений для CDialogBar будет направляться родительской панели управления (так же, как кнопки панели инструментов).
Поддержка CCmdUI для CDialogBar
Кнопки панели диалогового окна следует обновлять через механизм ON_UPDATE_COMMAND_UI обработчика. Во время простоя, панель будет вызывать обработчик ON_UPDATE_COMMAND_UI с Идентификатором команды всех кнопок, которые имеют ID > = 0x8000 (то есть, в диапазоне идентификаторов команд).
Можно вызвать обработчик ON_UPDATE_COMMAND_UI:
Настройка может быть выполнена через менеджер окон стандартных интерфейсов API.
Технические примечания по номеру |nbsp; Технические примечания по категориям