Поделиться через


Класс 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_TWOH — это значение градуса от 0 до 360, которое оба представляют красный цвет. Например, значение HLStoRGB_ONE0,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_ONE0,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] См. примечания.

Rh
[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] Горизонтальная координата пикселя для цвета.

y
[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 пикселя в растровом рисунке для изменения.

y
[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 градусов.

Замечания

См. также

Диаграмма иерархии
Классы