
- •Приложение а Сообщения и макросы
- •Приложение б Идентификация курсоров, значков, панелей инструментов, клавиш
- •Идентификаторы стандартных команд меню Edit
- •Приложение в Обьекты графического интерфейса
- •Стандартные значения основных атрибутов рисования
- •Алфавитный указатель
- •Татьяна Владимировна Ковалюк Объектно-ориентированное программирование
- •Издается в авторской редакции
- •Формат бумаги 6084 1/16
Стандартные значения основных атрибутов рисования
Атрибуты рисования |
Стандартное значение |
Функции, используемые для установки и получения значения |
Функции, на которые воздействуют атрибуты |
Направление рисования дуги |
По часовой стрелке |
SetArcDirection() GetArcDirection() |
Arc() |
Chord() |
|||
Ellipse() |
|||
Pie() |
|||
Цвет фона |
Белый |
SetBkColor() GetBkColor() |
Такие же, как в режиме рисования |
Режим фона |
OPAQUE |
SetBkMode() GetBkMode() |
Такие же, как в режиме рисования |
Текущая позиция |
Логические координаты (0, 0) |
MoveTo() GetCurrentPosition() |
LineTo() |
Окончание табл. В4
Атрибуты рисования |
Стандартное значение |
Функции, используемые для установки и получения значения |
Функции, на которые воздействуют атрибуты |
Первоначальная кисть |
Координаты экрана (0, 0) |
SetBrushOrg() GetBrushOrg() |
Chord() |
Ellipse() |
|||
Pie() |
|||
Polygon() |
|||
PolyPolygon() |
|||
Rectangle() |
|||
RoundRect() |
|||
PolyBezierTo() |
|||
PolylineTo() |
|||
Режим рисования |
R2_COPYPEN |
SetROP2() GetROP2() |
Arc() |
Chord() |
|||
Ellipse() |
|||
LineTo() |
|||
Pie() |
|||
PolyBezier() |
|||
PolyBezierTo() |
|||
Polygon() |
|||
Polyline() |
|||
PolylineTo() |
|||
PolyPolygon() |
|||
PolyPolyline() |
|||
Rectangle() |
|||
RoundRect() |
|||
Режим отображения |
MM_TEXT |
SetMapMode() GetMapMode() |
Все функции рисования |
Режим заливки |
ALTERNATE |
SetPolyFillMode() GetPolyFillMode() |
Polygon() |
PolyPolygon() |
Существует 16 возможных режимов рисования, которые задаются значением, передаваемым в функцию CDC::SetROP2() и представленными в табл. В5
Т а б л и ц а В5
Значение аргумента dDrawMode, задающего режимы рисования, при вызове функции CDC::SetROP2()
Значение |
Цвет каждого пиксела рисуемой фигуры |
R2_COPYPEN (Стандартный режим) |
Цвет пера |
R2_NOTCOPYPEN |
Инверсный цвету пера |
R2_NOT |
Инверсный цвету фона |
R2_BLACK |
Черный |
R2_WHITE |
Белый |
R2_NOP |
Не изменяется |
R2_MERGEPENNOT |
Цвет пиксела является комбинацией цвета пера и инверсного цвета экрана (final pixel = (NOT screen pixel) OR pen). |
R2_MASKPENNOT |
Цвет пиксела является комбинацией цветов, общих для пера и экрана (final pixel = (NOT screen pixel) AND pen). |
R2_MERGENOTPEN |
Цвет пиксела является комбинацией цвета экрана и инверсного цвета пера (final pixel = (NOT pen) OR screen pixel). |
R2_MASKNOTPEN |
Цвет пиксела является комбинацией цветов, общих для экрана и инверсного цвета пера (final pixel = (NOT pixel) AND screen pixel). |
R2_MERGEPEN |
Цвет пиксела является комбинацией цвета пера и цвета экрана (final pixel = pen OR screen pixel). |
R2_NOTMERGEPEN |
Цвет пиксела является инверсным цвету R2_MERGEPEN (final pixel = NOT(pen OR screen pixel)). |
R2_MASKPEN |
Цвет пиксела является комбинацией общих цветов для пера и экрана (final pixel = pen AND screen pixel). |
R2_NOTMASKPEN |
Цвет пиксела инверсный цвету R2_MASKPEN (final pixel = NOT(pen AND screen pixel)). |
R2_XORPEN |
Цвет пиксела является комбинацией цвета пера или экрана, но не их обоих (final pixel = pen XOR screen pixel). |
R2_NOTXORPEN |
Цвет пиксела является инверсным цвету R2_XORPEN (final pixel = NOT(pen XOR screen pixel)). |
Отображаемые в окнах стандартные элементы характеризуются системными метриками (шириной и высотой), которые можно получить с помощью функции ::GetSystemMetrics(), параметр которой принимает значения, приведенные в табл. В5, где все значения SM_CX* определяют ширину, все SM_CY* — высоту
Т а б л и ц а В6
Некоторые значения системных метрик, которые задаются параметром nIndex функции ::GetSystemMetrics()
Значение параметра |
Описание |
SM_ARRANGE |
Расположение минимизированных окон |
SM_CLEANBOOT |
Загрузка системы. Например, 0 — обычная, 1 — Fail-safe boot и т.д. |
SM_CMOUSEBUTTONS |
Количество кнопок мыши |
SM_CXBORDER, SM_CYBORDER |
Ширина и высота в пикселах границы окна |
SM_CXCURSOR, SM_CYCURSOR |
Ширина и высота в пикселах курсора |
SM_CXDOUBLECLK, SM_CYDOUBLECLK |
Ширина и высота в пикселах прямоугольника, в котором осуществляется двойной щелчок кнопки мыши |
SM_CXDRAG, SM_CYDRAG |
Ширина и высота в пикселах прямоугольника, в котором располагается курсор при выполнении операций drag and drop (перетащить и отпустить). |
SM_CXEDGE, SM_CYEDGE |
Размеры в пикселах трехмерных границ |
SM_CXFULLSCREEN, SM_CYFULLSCREEN |
Ширина и высота клиентской области в полноэкранном варианте |
SM_CXHSCROLL, SM_CYHSCROLL |
Ширина и высота в пикселах изображения стрелки на горизонтальной линейке прокрутки. |
SM_CXICON, SM_CYICON |
Ширина и высота значка |
SM_CXICONSPACING, SM_CYICONSPACING |
Размеры в пикселах прямоугольника для размещения элементов в виде больших значков |
SM_CXMAXIMIZED, SM_CYMAXIMIZED |
Размеры в пикселах развернутого на весь экран окна верхнего уровня.. |
SM_CXMAXTRACK, SM_CYMAXTRACK |
Максимальные размеры в пикселах окна, которое имеет заголовок и границу установки размеров |
SM_CXMENUSIZE, SM_CYMENUSIZE |
Размеры в пикселах кнопок меню, используемых в MDI |
SM_CXMIN, SM_CYMIN |
Минимальная ширина и высота окна в пикселах |
SM_CXMINIMIZED, SM_CYMINIMIZED |
Размеры в пикселах обычного минимизированного окна. |
SM_CXMINTRACK, SM_CYMINTRACK |
Минимальные размеры в пикселах окна при его уменьшении путем перемещения рамки окна. |
SM_CXSCREEN, SM_CYSCREEN |
Ширина и высота в пикселах экрана дисплея |
SM_CXSIZE, SM_CYSIZE |
Ширина и высота в пикселах кнопки в заголовке окна. |
SM_CXSIZEFRAME, SM_CYSIZEFRAME |
Толщина в пикселах рамки по периметру окна, размеры которой можно изменить |
SM_CXSMICON, SM_CYSMICON |
Рекомендованные размеры малых значков |
SM_CXVSCROLL, SM_CYVSCROLL |
Ширина в пикселах вертикальной линейки прокрутки и высота стрелки на ней. |
SM_CYCAPTION |
Высота в пикселах обычной области заголовка |
SM_CYMENU |
Высота линейки меню |
В зависимости от устройства отображения (дисплей, принтер, плоттер) с помощью функции CDC::GetDeviceCaps() можно получить информацию о растровых возможностях устройства, о количестве зависящих от устройства объектов GDI (кистей, перьев, шрифтов, цветов), о способности устройства отображать кривые, прямые линии, графические фигуры и многое другое (табл. В7).
Т а б л и ц а В7
Некоторые значения, которые передаются в функцию CDC::GetDeviceCaps()
Значения аргумента |
Семантика |
TECHNOLOGY |
Тип устройства (например, векторный плоттер, растровый дисплей, растровый принтер и др.) |
HORZSIZE |
Ширина области, доступной для печати, в мм |
VERTSIZE |
Высота области, доступной для печати, в мм |
HORZRES |
Ширина области, доступной для печати, в пикселах |
VERTRES |
Высота области, доступной для печати, в пикселах |
LOGPIXELSX |
Количество пикселов на дюйм по ширине области, доступной для печати |
LOGPIXELSY |
Количество пикселов на дюйм по высоте области, доступной для печати |
NUMBRUSHES |
Количество зависящих от устройства кистей |
NUMPENS |
Количество зависящих от устройства перьев |
NUMFONTS |
Количество зависящих от устройства шрифтов |
NUMCOLORS |
Количество зависящих от устройства цветов |
ASPECTX |
Относительная ширина пиксела, используемого при чистовом рисовании (line drawing) |
ASPECTY |
Относительная высота пиксела, используемого при чистовом рисовании (line drawing) |
RASTERCAPS |
Растровые возможности устройства |
CURVECAPS |
Способность устройства отображать кривые |
LINECAPS |
Способность устройства отображать прямые линии |
POLYGONALCAPS |
Способность устройства отображать многоугольники |
TEXTCAPS |
Способность устройства отображать текст |