CColorDialog ( COLORREF clrlnit = DWORD , dwFlags = 0 , CWnd* pParentWnd = NULL ) ;
Параметры:
clrlnit первоначально выбранный цвет (по умолчанию – черный);
dwFlags комбинация флагов, позволяющих, например, отобразить панель выбора дополнительных цветов или запретить ее использование;
pParentWnd указатель на родительское окно.
Функция DoModal, определённая в классе CColorDialog, создает и отображает диалоговое окно выбора цвета.
Синтаксис:
virtual int DoModal ( ) ;
Возвращаемое значение: IDOK или IDCANCEL – это константы, которые указывают, выбрал ли пользователь кнопку OK или Отмена.
Получить выбранный пользователем цвет можно с помощью функции GetColor, определённой в классе CСolorDialog. Прототип этой функции имеет следующий вид:
COLORREF GetColor ( ) const ;
Функция возвращает выбранный пользователем цвет.
Диалоговое окно Выбора цвета позволяет кроме основного цвета позволяет определить до 16 дополнительных значений цвета с помощью функции GetSavedCustomColors, протопит которой, имеет вид:
Синтаксис:
static COLORREF* GetSavedCustomColors () ;
Возвращаемое значение: указатель на массив из 16 RGB-цветов.
Изначально каждый из элементов массива инициируется белым цветом.
Ниже приведён код обработки события щелчка на кнопке IDC_COLOR в классе CcolDlg.
void CColDlg::OnColor()
{
// создание экземпляра класса окна выбора цвета; цвет по умолчанию - красный
CColorDialog dlg( 0x000000FF ) ;
// вывод на экран окна выбора цвета
if ( dlg.DoModal() == IDOK ) // если при закрытии окна пользователь нажал кнопку ОК
{
CString str ; // текст сообщения
COLORREF color ; // выбранный цвет
BYTE red , green , blue ; // составляющие цвета
color = dlg.GetColor (); // получение цвета, выбранного пользователем
red = GetRValue ( color ) ; // определение красной составляющей цвета
green = GetGValue ( color ) ; // определение зелёной составляющей цвета
blue = GetBValue ( color ) ; // определение синей составляющей цвета
// Формирование строки текста сообщения, цвета выводятся в виде шестнадцатеричных чисел
str.Format ( "Выбран цвет 0x%08X, содержащий:\n"
"\t0x%02X - красного\n"
"\t0x%02X - зеленого\n"
"\t0x%02X - синего", color , red , green , blue ) ;
// вывод окна сообщений
MessageBox ( str , "Выбран цвет" ) ;
}
В результате работы этого фрагмента кода на экран будет выведено следующее окно сообщений.
Большинство графических систем первого поколения были двухмерными. В них использовалась концепция модели перьевого плоттера. Такое устройство формирует изображение на бумаге за счет перемещения пера, закрепленного на двух подвижных направляющих. Одна направляющая перемещается в продольном направлении (вдоль оси у), а другая — в поперечном (вдоль оси х). Специальный механизм поднимает и опускает перо. В опущенном состоянии перо при перемещении оставляет след на бумаге — этот след и формирует изображение. В современных пакетах используется та же самая идея формирования на носителе следа подвижного пера, т.е. фактически воспроизведения процесса ручного вычерчивания с помощью карандаша. Пользователь при этом имеет дело с участком плоскости, ограниченным размерами планшета.
Поведение такой графической системы описывается двумя основными графическими функциями: MoveTo и LineTo.
При выполнении функции MoveTo перо приподымается и затем перемещается в точку с координатами (х, у), не оставляя следа на носителе. При выполнении функции LineTo перо опускается и затем перемещается по прямой из текущего положения в точку с заданными координатами (х, у), оставляя след на носителе. Если добавить к этим функциям еще и функции настройки (выбор пера подходящего цвета и толщины), то получим законченную двухмерную графическую систему. Ниже приведены прототипы этих функций.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.