Окт 16

Логическая палитра

При работе с логической палитрой следует помнить, что все цвета в приложении, которые реализованы как значения типа C0L0RREF, должны быть определены с помощью одного из следующих макросов:
COLORREF PALETTEINDEXtWORD wPalettelndex);
COLORREF PALETTERGB(BYTE bRed, BYTE bGreen, BYTE bBlue);
Макрос PALETTEINDEX получает индекс и возвращает 32-разрядное описание элемента палитры. В контексте устройства оно используется как элемент логической палитры контекста.
Макросу PALETTERGB, как и макросу RGB, передаются значения красной, зеленой и синей составляющих искомого цвета. При использовании этих макросов в контексте устройства без логической палитры их возвращаемые значения интерпретируются одинаково. Но если макрос PALETTERGB используется в контексте устройства с логической палитрой, то для указанных в нем RGB-составляющих система ищет ближайшее совпадение в логической палитре, словно приложение указало индекс в палитре. Этот макрос используется чаще, так как он является очевидной заменой макроса RGB во всех функциях, требующих передачи значения типа COLORREF.