[Главная]
|
[Новости] |
[Статьи] |
[Проекты] |
[Автор] |
||
[Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi] | ||||||
[Разработка компьютерной игры] [Пример игры Donuts3D] | ||||||
Что нужно знать для создания DirectX-приложений на C++ в среде Microsoft Visual Studio 2008 Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения |
||||||
Данный урок является введением в программирование на C++ в MSVS 2008 Вам нужно иметь установленную среду Microsoft Visual Studio 2005 или 2008 (можно триал), и DirectX SDK 9 версии, или лучше самой последней - DirectX SDK August 2008. |
||||||
[назад] [далее] [к содержанию] | ||||||
Мы рассматриваем основы программирования на C++ в среде программирования MSVS 2008 | ||||||
Реализация данной задачи - вывод диалога выбора цвета, например при нажатии пункта меню Save, будет выглядеть так (код нужно добавить в функцию WndProc) - case
IDM_OPTIONS_SAVE:
//++ учебный код для отображения диалога выбора цвета при выборе пункта
меню Save //++
|
||||||
Выбранный цвет должен использоваться в качестве цвета рабочей области окна приложения Получение доступа к цвету рабочей области окна приложения В функции MyRegisterClass при регистрации окна осуществляется задание начального цвета рабочей области окна - wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); CreateSolidBrush GetClassInfoEx SetClassLongPtr( Поиск информации по типу HBRUSH - на вкладке Index справки набрать HBRUSH, в списке вариантов выбрать HBRUSH, в открывшемся окне найти HBRUSH и открыть соответствующую ему тему brush
|
||||||
HBRUSH hbrush, hbrushOld;
// Select the new brush, and then draw.
// Do not forget to clean up. |
||||||
Полный вариант: реализация поставленной задачи - вывод диалога выбора цвета и смена цвета рабочей области окна в соответствии с выбранным в диалоге цветом - case
IDM_OPTIONS_SAVE:
CHOOSECOLOR chcol; if
(hWindowBackgroundBrush) //удаляем
созданную ранее кисть HBRUSH если она существовала hWindowBackgroundBrush = CreateSolidBrush(WindowBackgroudColor); //создаем новую кисть выбранного цвета //задаем кисть в качестве фона окна приложения SetClassLongPtr(hWnd, GCLP_HBRBACKGROUND, (LONG)hWindowBackgroundBrush); //выполняем
перерисовку окна, иначе фон изменится только после свертывания и развертывания
окна //++
Переменные //++ объявляются в начале модуля приложения как глобальные Обработчик сообщения WM_DESTROY примет следующий вид: case
WM_DESTROY: |
||||||
Начальный цвет фона рабочей области окна задается в функции MyRegisterClass строкой кода - //wcex.hbrBackground
= (HBRUSH)(COLOR_WINDOW+1); при этом будет использован системный цвет заднего плана (по-умолчанию черный) |
||||||
Для задания произвольных цветов рабочей области нужно использовать HBRUSH по аналогии с тем, как это сделано в обработчике выбора пункта меню Save (IDM_OPTIONS_SAVE) | ||||||
в
следующем уроке |
||||||
[назад] [далее] [к содержанию] | ||||||
Обновления
и новости о развитии Delphi DirectX проекта http://www.megainformaticsite.pochta.ru |
||||||
[Главная]
|
[Новости] |
[Статьи] |
[Проекты] |
[Автор] |
(c) Мега Информатик 2006-2009 | ||||||