C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 4.35.1 - Выбор цвета / Cтандартные диалоговые окна / Win32 API

4.35.1 - Выбор цвета

Эта статья описывает типовой код, который отображает на экране диалоговое окно Цвет (Color) тогда, когда пользователь собирается выбрать какой-нибудь цвет. Этот типовой код сначала инициализирует структуру CHOOSECOLOR, а затем вызывает функцию ChooseColor, чтобы изобразить диалоговое окно. Если функция возвращает значение ИСТИНА (TRUE), то это служит признаком того, что пользователь выбрал цвет, а типовой код использует выбранный цвет для создания новой сплошной кисти.

Этот пример использует структуру CHOOSECOLOR для инициализации диалогового окна как ниже указано:

  1. Инициализирует элемент lpCustColors с указателем на статический массив COLORREF. Цвета в массиве первоначально черные, но статический массив защищает пользовательские цвета, созданные пользователем, посредством использования последующего вызова ChooseColor.
  2. Устанавливает флажок CC_RGBINIT и инициализирует элемент rgbResult, чтобы определить цвет, который первоначально был выбран, когда диалоговое окно открывалось. Если он не определен, изначально выбирается черный цвет.
  3. Пример, использует статическую переменную rgbCurrent, чтобы сохранить значение выбора между обращениями к ChooseColor.
  4. Устанавливает флажок CC_FULLOPEN, так что диалоговое окно всегда отображает пользовательские дополнительные цвета.
CHOOSECOLOR cc;		// структура стандартного диалогового окна
static COLORREF acrCustClr[16];	// массив пользовательских цветов
HWND hwnd;			// окно владелец
HBRUSH hbrush;		// дескриптор кисти
static DWORD rgbCurrent;		// выбор начального цвета

// Инициализация CHOOSECOLOR
ZeroMemory(&cc, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hwnd;
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.rgbResult = rgbCurrent;

cc.Flags = CC_FULLOPEN | CC_RGBINIT;

if (ChooseColor(&cc)==TRUE) 
{
	hbrush = CreateSolidBrush(cc.rgbResult);
	rgbCurrent = cc.rgbResult;
}

| |
Автор Владимир Соковиков.
[AD]