COLORREF как RGB или шестнадцатеричный

У меня есть мой текущий код, который читает getPixel из текущей позиции курсора, но возвращаемое значение — просто какое-то безумное значение от COLORREF, и я хочу, чтобы оно было в RGB. Я посмотрел в справочник Microsoft и нашел макрос RGB

    COLORREF RGB(
BYTE byRed,
BYTE byGreen,
BYTE byBlue
);

и мой вопрос, как я должен использовать возврат из GetPixel в эту функцию RGB, а затем распечатать значение?
Текущий код:

include <Windows.h>
include <wingdi.h>
include <iostream>
pragma comment(lib, "gdi32.lib")

int main() {
while (true) {

HDC hDC;
hDC = GetDC(NULL);
POINT p;
GetCursorPos( & p);
int cx = p.x;
int cy = p.y;
std::cout << GetPixel(hDC,cx,cy) << std::endl;
Sleep(5);

}

}

-2

Решение

GetPixel() функция возвращает COLORREF который вы можете преобразовать в RGB значение как это:

// you can use the RGBTRIPLE for this

COLORREF color = GetPixel(hdc, x, y);
RGBTRIPLE rgb;

rgb.rgbtRed = GetRValue(color);
rgb.rgbtGreen = GetGValue(color);
rgb.rgbtBlue = GetBValue(color);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]