Чтение онлайн

на главную - закладки

Жанры

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Фролов Григорий Вячеславович

Шрифт:

nBarStyle = m_wndPlayerBar.GetButtonStyle(nIndex) | TBBS_CHECKGROUP;

m_wndPlayerBar.SetButtonStyle(nIndex, nBarStyle);

Далее кнопку с идентификатором ID_PAUSE мы превращаем в переключатель. Для этого определяем стиль этой кнопки и добавляем к нему стиль TBBS_CHECKBOX:

nIndex = m_wndPlayerBar.CommandToIndex(ID_PAUSE);

nBarStyle = m_wndPlayerBar.GetButtonStyle(nIndex) | TBBS_CHECKBOX;

m_wndPlayerBar.SetButtonStyle(nIndex, nBarStyle);

Когда

стили всех кнопок панели управления установлены, разрешаем присоединять ее к любой стороне родительского окна. Для этого вызываем метод EnableDocking, передав ему в качестве параметра значение CBRS_ALIGN_ANY:

m_wndPlayerBar.EnableDocking(CBRS_ALIGN_ANY);

Последним шагом в процессе создания панели управления Player является вызов метода DockControlBar для окна приложения. Этот метод пристывковывает панель управления Player к родительскому окну:

DockControlBar(&m_wndPlayerBar);

• Создание панели управления Style

Панель управления Style состоит из двенадцати кнопок, расположенных в три ряда по четыре кнопки в каждом ряду.

Чтобы создать панель управления Style вызывается метод Create объекта m_wndStyleBar. Ему передается набор флагов, определяющий характеристики панели управления. Флаг CBRS_SIZE_FIXED указывает, что панель управления имеет фиксированную форму, которую пользователь не сможет изменить. Флаг CBRS_TOP задает начальное положение панели — вверху окна приложения. Флаг CBRS_TOOLTIPS разрешает отображение кратких подсказок для тех кнопок панели управления, которые имеют соответствующие строковые ресурсы.

Файл ресурсов содержит строки описания только для первых восьми кнопок панели Style. Последние четыре кнопки не имеют соответствующих строковых ресурсов, поэтому для них подсказка не отображается:

if (!m_wndStyleBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_FIXED | CBRS_TOP | CBRS_TOOLTIPS, ID_Style)) {

 // Ошибка при создании панели управления

 TRACE0("Failed to create toolbar\n");

 return -1;

}

После создания панели управления загружаем ресурс IDR_STYLE, описывающий кнопки панели управления:

if (!m_wndStyleBar.LoadToolBar(IDR_STYLE)) {

 // Ошибка при загрузке ресурса панели управления

 TRACE0("Failed to load toolbar\n");

 return -1;

}

Когда панель управления создана, вызываем метод SetWindowText, чтобы установить текст в ее заголовке:

m_wndStyleBar.SetWindowText("Style");

Панель управления Style задумана нами как панель управления, которая все время отображается в отдельном мини-окне. Поэтому мы запрещаем пристывковывать панель управления Player к родительскому окну. Для этого вызываем метод EnableDocking, указав ему в качестве параметра нулевое значение:

m_wndStyleBar.EnableDocking(0);

Чтобы

установить форму панели управления (разделить кнопки на несколько рядов) добавляем к стилям кнопок, завершающих каждый ряд, стиль TBBS_WRAPPED:

nIndex = m_wndStyleBar.CommandToIndex(ID_SUBSCRIPT);

nBarStyle = m_wndStyleBar.GetButtonStyle(nIndex) | TBBS_WRAPPED;

m_wndStyleBar.SetButtonStyle(nIndex, nBarStyle);

nIndex = m_wndStyleBar.CommandToIndex(ID_TEXT_JUSTIFY);

nBarStyle = m_wndStyleBar.GetButtonStyle(nIndex) | TBBS_WRAPPED;

m_wndStyleBar.SetButtonStyle(nIndex, nBarStyle);

Когда стили всех кнопок установлены, вызываем метод FloatControlBar главного окна приложения, чтобы вывести панель управления Style в отдельном мини-окне. В качестве координат, в которых отображается панель Style, произвольно выбираем точку (100,100):

CPoint pointStyleBar(100, 100);

FloatControlBar(&m_wndStyleBar, pointStyleBar);

• Создание панели управления Extended

Панель управления Extended содержит дополнительные органы управления – текстовый редактор и список combo-box.

Чтобы создать панель управления Extended вызывается метод Create объекта m_wndExtendedBar. Ему передаются набор флагов, определяющий характеристики панели управления. Флаг CBRS_SIZE_DYNAMIC указывает, что пользователь может изменить форму панели управления. Флаг CBRS_TOP задает начальное положение панели - вверху окна приложения. Флаг CBRS_TOOLTIPS разрешает отображение кратких подсказок для тех кнопок панели управления, которые имеют соответствующие строковые ресурсы:

if (!m_wndExtendedBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_SIZE_DYNAMIC | CBRS_TOP | CBRS_TOOLTIPS, ID_Extended)) {

 // Ошибка при создании панели управления

 TRACE0("Failed to create toolbar\n");

 return -1;

}

После создания панели управления загружаем ресурс IDR_ EXTENDED, описывающий кнопки панели управления:

if (!m_wndExtendedBar.LoadToolBar(IDR_EXTENDED)) {

 // Ошибка при загрузке ресурса панели управления

 TRACE0("Failed to load toolbar\n");

 return -1;

}

Когда панель управления создана, вызываем метод SetWindowText, чтобы установить текст в ее заголовке:

m_wndExtendedBar.SetWindowText("Extended");

Теперь мы приступаем к созданию дополнительных органов управления – текстового редактора и списка combo-box. Эти органы управления размещаются в панелях управления на месте разделителей.

Поделиться:
Популярные книги

Эволюционер из трущоб. Том 12

Панарин Антон
12. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 12

Идеальный мир для Лекаря 25

Сапфир Олег
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 25

Охотник на демонов

Шелег Дмитрий Витальевич
2. Живой лёд
Фантастика:
боевая фантастика
5.83
рейтинг книги
Охотник на демонов

Кодекс Крови. Книга V

Борзых М.
5. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга V

Глава рода

Шелег Дмитрий Витальевич
5. Живой лёд
Фантастика:
боевая фантастика
6.55
рейтинг книги
Глава рода

Князь

Шмаков Алексей Семенович
5. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
сказочная фантастика
5.00
рейтинг книги
Князь

Русская драматургия XVIII – XIX вв. (Сборник)

Пушкин Александр Сергеевич
Поэзия:
драматургия
6.25
рейтинг книги
Русская драматургия XVIII – XIX вв. (Сборник)

Страж Кодекса

Романов Илья Николаевич
1. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Страж Кодекса

Древесный маг Орловского княжества

Павлов Игорь Васильевич
1. Орловское княжество
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Древесный маг Орловского княжества

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

Язычник

Мазин Александр Владимирович
5. Варяг
Приключения:
исторические приключения
8.91
рейтинг книги
Язычник

Эволюционер из трущоб. Том 5

Панарин Антон
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 5

Чужак

Листратов Валерий
1. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Чужак

Барон. Книга вторая

Первухин Андрей Евгеньевич
6. Ученик
Фантастика:
фэнтези
попаданцы
5.40
рейтинг книги
Барон. Книга вторая