Класс CDrawingManager
Класс CDrawingManager
реализует сложные алгоритмы рисования.
Синтаксис
class CDrawingManager : public CObject
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CDrawingManager::CDrawingManager | Формирует объект CDrawingManager . |
CDrawingManager::~CDrawingManager |
Деструктор. |
Открытые методы
Имя | Описание |
---|---|
CDrawingManager::CreateBitmap_32 | Создает 32-разрядную независимую от устройства растровую карту (DIB), в которую приложения могут напрямую записывать данные. |
CDrawingManager::D rawAlpha | Отображает растровые изображения с прозрачными или полутранспарентными пикселями. |
CDrawingManager::D rawRotated | Поворот исходного содержимого контроллера домена внутри заданного прямоугольника на +/- 90 градусов |
CDrawingManager::D rawEllipse | Рисует многоточие с заданными цветами заливки и границы. |
CDrawingManager::D rawGradientRing | Рисует кольцо и заполняет его цветом градиента. |
CDrawingManager::D rawLine, CDrawingManager::D rawLineA | Рисует линию. |
CDrawingManager::D rawRect | Рисует прямоугольник с заданными цветами заливки и границы. |
CDrawingManager::D rawShadow | Рисует тень для прямоугольной области. |
CDrawingManager::Fill4ColorsGradient | Заполняет прямоугольную область двумя градиентами цвета. |
CDrawingManager::FillGradient | Заполняет прямоугольную область заданным градиентом цвета. |
CDrawingManager::FillGradient2 | Заполняет прямоугольную область заданным градиентом цвета. Также указывается направление изменения цвета градиента. |
CDrawingManager::GrayRect | Заполняет прямоугольник указанным серым цветом. |
CDrawingManager::HighlightRect | Выделяет прямоугольную область. |
CDrawingManager::HLStoRGB_ONE | Преобразует цвет из представления HLS в представление RGB. |
CDrawingManager::HLStoRGB_TWO | Преобразует цвет из представления HLS в представление RGB. |
CDrawingManager::HSVtoRGB | Преобразует цвет из представления HSV в представление RGB. |
CDrawingManager::HuetoRGB | Вспомогательный метод, который преобразует значение оттенка в красный, зеленый или синий компонент. |
CDrawingManager::MirrorRect | Переворачивает прямоугольную область. |
CDrawingManager::P ixelAlpha | Вспомогательный метод, определяющий окончательный цвет для полутранспарентного пикселя. |
CDrawingManager::P repareShadowMask | Создает растровое изображение, которое можно использовать в качестве тени. |
CDrawingManager::RGBtoHSL | Преобразует цвет из представления RGB в представление HSL. |
CDrawingManager::RGBtoHSV | Преобразует цвет из представления RGB в представление HSV. |
CDrawingManager::SetAlphaPixel | Вспомогательный метод, который цветирует частично прозрачный пиксель в растровом рисунке. |
CDrawingManager::SetPixel | Вспомогательный метод, который изменяет один пиксель в растровом рисунке на указанный цвет. |
CDrawingManager::SmartMixColors | Объединяет два цвета на основе взвешированного соотношения. |
Замечания
Класс CDrawingManager
предоставляет функции для рисования тени, градиентов цвета и выделенных прямоугольников. Он также выполняет альфа-смешивание. Этот класс можно использовать для непосредственного изменения пользовательского интерфейса приложения.
Иерархия наследования
CObject
CDrawingManager
Требования
Заголовок: afxdrawmanager.h
CDrawingManager::CDrawingManager
Создает объект CDrawingManager.
CDrawingManager(CDC& dc);
Параметры
dc
[in] Ссылка на контекст устройства. Этот CDrawingManager
контекст используется для рисования.
CDrawingManager::CreateBitmap_32
Создает 32-разрядную независимую от устройства растровую карту (DIB), в которую приложения могут напрямую записывать данные.
static HBITMAP __stdcall CreateBitmap_32(
const CSize& size,
void** pBits);
static HBITMAP __stdcall CreateBitmap_32(
HBITMAP bitmap,
COLORREF clrTransparent = -1);
Параметры
size
[in] Параметр CSize , указывающий размер растрового изображения.
pBits
[out] Указатель на указатель данных, который получает расположение битовых значений DIB.
bitmap
Дескриптор исходного растрового изображения
clrTransparent
Значение RGB, указывающее прозрачный цвет исходного растрового изображения.
Возвращаемое значение
Дескриптор созданного растрового изображения DIB, если этот метод выполнен успешно; в противном случае ЗНАЧЕНИЕ NULL.
Замечания
Дополнительные сведения о создании растрового изображения DIB см. в статье CreateDIBSection.
CDrawingManager::D rawAlpha
Отображает растровые изображения с прозрачными или полутранспарентными пикселями.
void DrawAlpha(
CDC* pDstDC,
const CRect& rectDst,
CDC* pSrcDC,
const CRect& rectSrc);
Параметры
pDstDC
[in] Указатель на контекст устройства для назначения.
rectDst
[in] Прямоугольник назначения.
pSrcDC
[in] Указатель на контекст устройства для источника.
rectSrc
[in] Исходный прямоугольник.
Замечания
Этот метод выполняет альфа-смешивание для двух растровых изображений. Дополнительные сведения о альфа-смешиваниях см. в статье AlphaBlend в пакете SDK для Windows.
CDrawingManager::D rawEllipse
Рисует многоточие с заданными цветами заливки и границы.
void DrawEllipse(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Параметры
rect
[in] Ограничивающий прямоугольник для многоточия.
clrFill
[in] Цвет этого метода используется для заполнения многоточия.
clrLine
[in] Цвет этого метода используется в качестве границы многоточия.
Замечания
Этот метод возвращается без многоточия, если для любого цвета задано значение -1. Он также возвращается без рисования многоточия, если любое измерение ограничивающего прямоугольника равно 0.
CDrawingManager::D rawGradientRing
Рисует кольцо и заполняет его цветом градиента.
BOOL DrawGradientRing(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
COLORREF colorBorder,
int nAngle,
int nWidth,
COLORREF clrFace = (COLORREF)-1);
Параметры
rect
[in] Параметр CRect , указывающий границу для градиента.
ColorStart
[in] Первый цвет градиента.
colorFinish
[in] Последний цвет градиента.
colorBorder
[in] Цвет границы.
nAngle
[in] Параметр, указывающий начальный угол рисования градиента. Это значение должно быть от 0 до 360.
nWidth
[in] Ширина границы для кольца.
clrFace
[in] Цвет интерьера кольца.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Прямоугольник, определенный прямоугольником , должен иметь по крайней мере 5 пикселей ширины и 5 пикселей.
CDrawingManager::D rawLine, CDrawingManager::D rawLineA
Рисует линию.
void DrawLine(
int x1,
int y1,
int x2,
int y2,
COLORREF clrLine);
void DrawLineA(
double x1,
double y1,
double x2,
double y2,
COLORREF clrLine);
Параметры
x1
[in] Координата x, в которой начинается строка.
y1
[in] Координата y, в которой начинается линия.
x2
[in] Координата x, в которой заканчивается линия.
y2
[in] Координата y, в которой заканчивается линия.
clrLine
[in] Цвет линии.
Замечания
Этот метод завершается ошибкой, если clrLine равно -1.
CDrawingManager::D rawRect
Рисует прямоугольник с заданными цветами заливки и границы.
void DrawRect(
const CRect& rect,
COLORREF clrFill,
COLORREF clrLine);
Параметры
rect
[in] Границы прямоугольника.
clrFill
[in] Цвет этого метода используется для заполнения прямоугольника.
clrLine
[in] Цвет этого метода используется для границы прямоугольника.
Замечания
Этот метод возвращает без рисования прямоугольника, если для любого цвета задано значение -1. Он также возвращает значение, если любое измерение прямоугольника равно 0.
CDrawingManager::D rawShadow
Рисует тень для прямоугольной области.
BOOL DrawShadow(
CRect rect,
int nDepth,
int iMinBrightness = 100,
int iMaxBrightness = 50,
CBitmap* pBmpSaveBottom = NULL,
CBitmap* pBmpSaveRight = NULL,
COLORREF clrBase = (COLORREF)-1,
BOOL bRightShadow = TRUE);
Параметры
rect
[in] Прямоугольная область в приложении. Диспетчер рисования нарисует тень под этой областью.
nDepth
[in] Ширина и высота тени.
iMinBrightness
[in] Минимальная яркость тени.
iMaxBrightness
[in] Максимальная яркость тени.
pBmpSaveBottom
[in] Указатель на растровое изображение, содержащее изображение для нижней части тени.
pBmpSaveRight
[in] Указатель на растровое изображение, содержащее изображение для тени, рисуемой справа от прямоугольника.
clrBase
[in] Цвет тени.
bRightShadow
[in] Логический параметр, указывающий, как рисуется тень. Если bRightShadow есть TRUE
, DrawShadow
рисует тень справа от прямоугольника.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Можно предоставить два допустимых растровых изображения для нижних и правых теней с помощью параметров pBmpSaveBottom и pBmpSaveRight. Если эти объекты CBitmap имеют присоединенный объект GDI, DrawShadow
используйте эти растровые изображения в качестве теней. Если параметры CBitmap
не имеют присоединенного объекта GDI, DrawShadow
рисует тень и присоединяет растровые изображения к параметрам. В будущих вызовах DrawShadow
можно предоставить эти растровые изображения, чтобы ускорить процесс рисования. Дополнительные сведения о классах и объектах GDI см. в разделе "Графические CBitmap
объекты".
Если один из этих параметров имеет значение NULL
, DrawShadow
автоматически нарисует тень.
Если вы установите для bRightShadow значение FALSE, тени будут нарисованы под и слева от прямоугольной области.
Пример
В следующем примере показано, как использовать DrawShadow
метод CDrawingManager
класса. Этот фрагмент кода является частью примера демонстрации Prop Sheet.
// CDC* pDC
// CRect rectHeader
CDrawingManager dm(*pDC);
// Draw a shadow for a rectangular area.
// second parameter is the depth of the shadow
dm.DrawShadow(rectHeader, 2);
CDrawingManager::Fill4ColorsGradient
Заполняет прямоугольную область двумя градиентами цвета.
void Fill4ColorsGradient(
CRect rect,
COLORREF colorStart1,
COLORREF colorFinish1,
COLORREF colorStart2,
COLORREF colorFinish2,
BOOL bHorz = TRUE,
int nPercentage = 50);
Параметры
rect
[in] Прямоугольник для заливки.
colorStart1
[in] Начальный цвет первого градиента цвета.
colorFinish1
[in] Окончательный цвет первого градиента цвета.
colorStart2
[in] Начальный цвет второго градиента.
colorFinish2
[in] Окончательный цвет второго градиента.
bHorz
[in] Логический параметр, указывающий, является ли Fill4ColorsGradient
цвет горизонтальным или вертикальным градиентом. ЗНАЧЕНИЕ TRUE указывает горизонтальный градиент.
nPercentage
[in] Целое число от 0 до 100. Это значение указывает процент прямоугольника для градиента первого цвета.
Замечания
Если прямоугольник заполняется двумя градиентами цвета, они расположены друг над другом или рядом друг с другом в зависимости от значения bHorz. Каждый градиент цвета вычисляется независимо с помощью метода CDrawingManager::FillGradient.
Этот метод создает сбой утверждения, если nPercentage меньше 0 или более 100.
CDrawingManager::FillGradient
Заполняет прямоугольную область заданным градиентом цвета.
void FillGradient(
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
BOOL bHorz = TRUE,
int nStartFlatPercentage = 0,
int nEndFlatPercentage = 0);
Параметры
rect
[in] Прямоугольная область для заливки.
ColorStart
[in] Первый цвет градиента.
colorFinish
[in] Последний цвет для градиента.
bHorz
[in] Логический параметр, указывающий, следует ли FillGradient
нарисовать горизонтальный или вертикальный градиент.
nStartFlatPercentage
[in] Процент прямоугольника, заполняющего FillGradient
цветомStart , перед началом градиента.
nEndFlatPercentage
[in] Процент прямоугольника, заполняющего FillGradient
цветомFinish после завершения градиента.
Пример
В следующем примере показано, как использовать FillGradient
метод CDrawingManager
класса. Этот фрагмент кода является частью примера демонстрации MS Office 2007.
// CRect rectScreen
// CDrawingManager dm
dm.FillGradient(rectScreen, RGB(114, 125, 152), RGB(178, 185, 202), TRUE);
CDrawingManager::FillGradient2
Заполняет прямоугольную область заданным градиентом цвета.
void FillGradient2 (
CRect rect,
COLORREF colorStart,
COLORREF colorFinish,
int nAngle = 0);
Параметры
rect
[in] Прямоугольная область для заливки.
ColorStart
[in] Первый цвет градиента.
colorFinish
[in] Последний цвет градиента.
nAngle
[in] Целое число от 0 до 360. Этот параметр задает направление градиента цвета.
Замечания
Используйте nAngle , чтобы указать направление градиента цвета. При указании направления градиента цвета также указывается, где начинается градиент цвета. Значение 0 для nAngle указывает, что градиент начинается с верхней части прямоугольника. По мере увеличения nAngle начальное расположение для градиента перемещается в направлении по часовой стрелке на основе угла.
Пример
В следующем примере показано, как использовать FillGradient2
метод CDrawingManager
класса. Этот фрагмент кода является частью примера "Новые элементы управления".
// CRect rect
// CDC* pDC
CDrawingManager dm(*pDC);
// The last parameter is the angle that specifies the direction of the color gradient.
dm.FillGradient2(rect, RGB(102, 200, 238), RGB(0, 129, 185), 45);
CDrawingManager::GrayRect
Заполняет прямоугольник указанным серым цветом.
BOOL GrayRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
COLORREF clrDisabled = (COLORREF)-1);
Параметры
rect
[in] Прямоугольная область для заливки.
nPercentage
[in] Процент серого цвета, который требуется в прямоугольнике.
clrTransparent
[in] Прозрачный цвет.
clrDisabled
[in] Цвет, который этот метод использует для отмены насыщенности, если nPercentage имеет значение -1.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если метод выполнен успешно; в противном случае ЗНАЧЕНИЕ FALSE.
Замечания
Для параметра nPercentage меньшее значение указывает более темный цвет.
Максимальное значение nPercentage равно 200. Значение, превышающее 200, не изменяет внешний вид прямоугольника. Если значение равно -1, этот метод использует clrDisabled , чтобы ограничить насыщенность прямоугольника.
CDrawingManager::HighlightRect
Выделяет прямоугольную область.
BOOL HighlightRect(
CRect rect,
int nPercentage = -1,
COLORREF clrTransparent = (COLORREF)-1,
int nTolerance = 0,
COLORREF clrBlend = (COLORREF)-1);
Параметры
rect
[in] Прямоугольная область для выделения.
nPercentage
[in] Процент, указывающий, насколько прозрачным должно быть выделение.
clrTransparent
[in] Прозрачный цвет.
nTolerance
[in] Целое число от 0 до 255, указывающее допустимое цветовое значение.
clrBlend
[in] Базовый цвет для смешивания.
Возвращаемое значение
ЗНАЧЕНИЕ TRUE, если метод выполнен успешно; в противном случае ЗНАЧЕНИЕ FALSE.
Замечания
Если nPercentage составляет от 0 до 99, HighlightRect
используется алгоритм альфа-смешивания. Дополнительные сведения о альфа-смешивание см. в разделе "Альфа-смешивание линий" и "Заливки". Если значение nPercentage равно -1, этот метод использует уровень выделения по умолчанию. Если значение nPercentage равно 100, этот метод ничего не делает и возвращает значение TRUE.
Метод использует параметр nTolerance , чтобы определить, следует ли выделить прямоугольную область. Чтобы выделить прямоугольник, разница между цветом фона приложения и clrTransparent должна быть меньше nTolerance в каждом компоненте цвета (красный, зеленый и синий).
CDrawingManager::HLStoRGB_ONE
Преобразует цвет из представления HLS в представление RGB.
static COLORREF __stdcall HLStoRGB_ONE(
double H,
double L,
double S);
Параметры
H
[in] Число от 0 до 1, представляющее оттенки цвета.
L
[in] Число от 0 до 1, указывающее светимость цвета.
S
[in] Число от 0 до 1, указывающее насыщенность цвета.
Возвращаемое значение
Представление RGB цвета HLS, предоставленного.
Замечания
Цвет может быть представлен как HSV (оттенки, насыщенность и значение), HSL (оттенок, насыщенность и светимость), или RGB (красный, зеленый и синий). Дополнительные сведения о различных представлениях цвета см. в разделе "Цвет".
Этот метод и CDrawingManager::HLStoRGB_TWO
метод выполняют ту же операцию, но требуют различных значений для параметра H . В этом методе H — это процент круга. В методе CDrawingManager::HLStoRGB_TWO
H — это значение градуса от 0 до 360, которое оба представляют красный цвет. Например, значение HLStoRGB_ONE
0,25 для H эквивалентно значению 90 с HLStoRGB_TWO
.
CDrawingManager::HLStoRGB_TWO
Преобразует цвет из представления HLS в представление RGB.
static COLORREF __stdcall HLStoRGB_TWO(
double H,
double L,
double S);
Параметры
H
[in] Число от 0 до 360, представляющее оттенки цвета.
L
[in] Число от 0 до 1, указывающее светимость цвета.
S
[in] Число от 0 до 1, указывающее насыщенность цвета.
Возвращаемое значение
Представление RGB цвета HLS, предоставленного.
Замечания
Цвет может быть представлен как HSV (оттенки, насыщенность и значение), HSL (оттенок, насыщенность и светимость), или RGB (красный, зеленый и синий). Дополнительные сведения о различных представлениях цвета см. в разделе "Цвет".
Этот метод и метод CDrawingManager::HLStoRGB_ONE выполняют ту же операцию, но требуют различных значений для параметра H . В этом методе H — это значение градуса от 0 до 360, которое оба представляют красный цвет. В методе CDrawingManager::HLStoRGB_ONE H — это процент круга. Например, значение HLStoRGB_ONE
0,25 для H эквивалентно значению 90 с HLStoRGB_TWO
.
CDrawingManager::HSVtoRGB
Преобразует цвет из представления HSV в представление RGB.
static COLORREF __stdcall HSVtoRGB(
double H,
double S,
double V);
Параметры
H
[in] Число от 0 до 360, указывающее оттенки цвета.
S
[in] Число от 0 до 1, указывающее насыщенность цвета.
V
[in] Число от 0 до 1, указывающее значение цвета.
Возвращаемое значение
Предоставленное rgb-представление цвета HSV.
Замечания
Цвет может быть представлен как HSV (оттенки, насыщенность и значение), HSL (оттенок, насыщенность и светимость), или RGB (красный, зеленый и синий). Дополнительные сведения о различных представлениях цвета см. в разделе "Цвет".
CDrawingManager::HuetoRGB
Преобразует значение оттенка в красный, зеленый или синий компонент.
static double __stdcall HuetoRGB(
double m1,
double m2,
double h);
static BYTE __stdcall HueToRGB(
float rm1,
float rm2,
float rh);
Параметры
m1
[in] См. примечания.
m2
[in] См. примечания.
ч
[in] См. примечания.
rm1
[in] См. примечания.
rm2
[in] См. примечания.
относительная влажность
[in] См. примечания.
Возвращаемое значение
Отдельный красный, зеленый или синий компонент для предоставленного оттенка.
Замечания
Этот метод является вспомогательным методом, который CDrawingManager
класс использует для вычисления отдельных красных, зеленых и синих компонентов цвета в представлении HSV или HSL. Этот метод не предназначен для вызова непосредственно программистом. Входные параметры — это значения, зависящие от алгоритма преобразования.
Чтобы преобразовать цвет HSV или HSL в представление RGB, вызовите один из следующих методов:
CDrawingManager::MirrorRect
Переворачивает прямоугольную область.
void MirrorRect(
CRect rect,
BOOL bHorz = TRUE);
Параметры
rect
[in] Ограничивающий прямоугольник области для переворачивания.
bHorz
[in] Логический параметр, указывающий, будет ли прямоугольник переворачиваться по горизонтали или по вертикали.
Замечания
Этот метод может перевернуть любую область контекста устройства, принадлежащей классу CDrawingManager
. Если для параметра bHorz задано значение TRUE, этот метод перевернут область горизонтально. В противном случае она перевернута область по вертикали.
CDrawingManager::P ixelAlpha
Вычисляет окончательный цвет для полупрозрачного пикселя.
static COLORREF __stdcall PixelAlpha(
COLORREF srcPixel,
int percent);
static COLORREF __stdcall PixelAlpha(
COLORREF srcPixel,
double percentR,
double percentG,
double percentB);
static COLORREF __stdcall PixelAlpha(
COLORREF srcPixel,
COLORREF dstPixel,
int percent);
Параметры
srcPixel
[in] Начальный цвет пикселя.
процент
[in] Число от 0 до 100, представляющее процент прозрачности. Значение 100 означает, что начальный цвет полностью прозрачный.
процентR
[in] Число от 0 до 100, представляющее процент прозрачности для красного компонента.
процентГ
[in] Число от 0 до 100, представляющее процент прозрачности для зеленого компонента.
percentB
[in] Число от 0 до 100, представляющее процент прозрачности для синего компонента.
dstPixel
[in] Базовый цвет для пикселя.
Возвращаемое значение
Окончательный цвет для полутранспарентного пикселя.
Замечания
Это вспомогательный класс для цветовых полутранспарентных растровых изображений и не предназначен для вызова непосредственно программистом.
При использовании версии метода с dstPixel окончательным цветом является сочетание dstPixel и srcPixel. Цвет srcPixel является частично прозрачным цветом по базовому цвету dstPixel.
CDrawingManager::P repareShadowMask
Создает растровое изображение, которое можно использовать в качестве тени.
static HBITMAP __stdcall PrepareShadowMask (
int nDepth,
COLORREF clrBase,
int iMinBrightness = 0,
int iMaxBrightness = 100);
Параметры
nDepth
[in] Ширина и высота тени.
clrBase
[in] Цвет тени.
iMinBrightness
[in] Минимальная яркость тени.
iMaxBrightness
[in] Максимальная яркость тени.
Возвращаемое значение
Дескриптор созданной растровой карты, если этот метод выполнен успешно; в противном случае ЗНАЧЕНИЕ NULL.
Замечания
Если nDepth имеет значение 0, этот метод завершает работу и возвращает значение NULL. Если nDepth меньше 3, ширина и высота тени имеют значение 3 пикселя.
CDrawingManager::RGBtoHSL
Преобразует цвет из красного, зеленого и синего (RGB) представления в представление оттенка, насыщенности и легкости (HSL).
static void __stdcall RGBtoHSL(
COLORREF rgb,
double* H,
double* S,
double* L);
Параметры
rgb
[in] Цвет в значениях RGB.
H
[out] Указатель на двойник, в котором метод сохраняет оттенок цвета.
S
[out] Указатель на двойник, в котором метод сохраняет насыщенность цвета.
L
[out] Указатель на двойник, в котором метод сохраняет светность для цвета.
Замечания
Цвет может быть представлен как HSV (оттенки, насыщенность и значение), HSL (оттенок, насыщенность и светимость), или RGB (красный, зеленый и синий). Дополнительные сведения о различных представлениях цвета см. в разделе "Цвет".
Возвращаемое значение для H представляется в диапазоне от 0 до 1, где как 0, так и 1 представляют красный цвет. Возвращаемые значения для S и L — это числа от 0 до 1.
CDrawingManager::RGBtoHSV
Преобразует цвет из представления RGB в представление HSV.
static void __stdcall RGBtoHSV(
COLORREF rgb,
double* H,
double* S,
double* V);
Параметры
rgb
[in] Цвет, преобразуемый в представление RGB.
H
[out] Указатель на двойник, в котором этот метод сохраняет результирующий оттенок цвета.
S
[out] Указатель на двойник, в котором этот метод сохраняет результирующий насыщенность цвета.
V
[out] Указатель на двойник, в котором этот метод сохраняет результирующее значение цвета.
Замечания
Цвет может быть представлен как HSV (оттенки, насыщенность и значение), HSL (оттенок, насыщенность и светимость), или RGB (красный, зеленый и синий). Дополнительные сведения о различных представлениях цвета см. в разделе "Цвет".
Возвращаемое значение для H — это число от 0 до 360, где как 0, так и 360 указывают красный цвет. Возвращаемые значения для S и V — это числа от 0 до 1.
CDrawingManager::SetAlphaPixel
Цвет прозрачного пикселя в растровом рисунке.
static void __stdcall SetAlphaPixel(
COLORREF* pBits,
CRect rect,
int x,
int y,
int percent,
int iShadowSize,
COLORREF clrBase = (COLORREF)-1,
BOOL bIsRight = TRUE);
Параметры
pBits
[in] Указатель на битовые значения для растрового изображения.
rect
[in] Прямоугольная область в приложении. Диспетчер рисования рисует тень под этой областью и справа от этой области.
x
[in] Горизонтальная координата пикселя для цвета.
г
[in] Вертикальная координата пикселя на цвет.
процент
[in] Процент прозрачности.
iShadowSize
[in] Ширина и высота тени.
clrBase
[in] Цвет тени.
bIsRight
[in] Логический параметр, указывающий, какой пиксель имеет цвет. Дополнительные сведения см. в разделе «Примечания».
Замечания
Этот метод является вспомогательным методом, используемым методом CDrawingManager::D rawShadow . Рекомендуется, если вы хотите нарисовать тень, вызовите CDrawingManager::DrawShadow
вместо этого.
Если для bIsRight задано значение TRUE, то пиксель к цвету измеряется x пикселей с правого края прямоугольника. Если значение равно FALSE, то пиксель к цвету измеряется x пикселей с левого края прямоугольника.
CDrawingManager::SetPixel
Изменяет один пиксель в растровом рисунке на указанный цвет.
static void __stdcall SetPixel(
COLORREF* pBits,
int cx,
int cy,
int x,
int y,
COLORREF color);
Параметры
pBits
[in] Указатель на битовые значения растрового изображения.
cx
[in] Общая ширина растрового изображения.
cy
[in] Общая высота растрового изображения.
x
[in] Координата x пикселя в растровом рисунке для изменения.
г
[in] Координата y пикселя в растровом рисунке для изменения.
color
[in] Новый цвет для пикселя, определяемого предоставленными координатами.
CDrawingManager::SmartMixColors
Объединяет два цвета на основе взвешированного соотношения.
static COLORREF __stdcall SmartMixColors(
COLORREF color1,
COLORREF color2,
double dblLumRatio = 1.,
int k1 = 1,
int k2 = 1);
Параметры
цвет1
[in] Первый цвет для смешивания.
цвет2
[in] Второй цвет для смешивания.
dblLumRatio
[in] Отношение к светимости нового цвета. SmartMixColors
умножает светимость смешанного цвета на этот коэффициент перед определением окончательного цвета.
k1
[in] Взвешемое соотношение для первого цвета.
k2
[in] Взвешемое соотношение для второго цвета.
Возвращаемое значение
Цвет, представляющий весовую смесь предоставленных цветов.
Замечания
Этот метод завершается ошибкой, если k1 или k2 меньше нуля. Если для обоих этих параметров задано значение 0, метод возвращается RGB(0, 0, 0)
.
Коэффициент взвешен с помощью следующей формулы: (color1 * k1 + color2 * k2)/(k1 + k2). После определения взвешированного соотношения метод вычисляет светимость для смешанного цвета. Затем он умножает светимость на dblLumRatio. Если значение больше 1,0, метод задает светимость для смешанного цвета новым значением. В противном случае для светимости задано значение 1.0.
CDrawingManager::D rawRotated
Поворот исходного содержимого контроллера домена внутри заданного прямоугольника на 90 градусов.
void DrawRotated(
CRect rectDest,
CDC& dcSrc,
BOOL bClockWise);
Параметры
rectDest
Прямоугольник назначения.
dcSrc
Контекст исходного устройства.
bClockWise
ЗНАЧЕНИЕ TRUE указывает поворот +90 градусов; FALSE указывает поворот -90 градусов.