Я хочу получить значок курсора в Windows. Я думаю, что язык, который я использую, здесь не очень важен, поэтому я просто напишу псевдокод с функциями WinAPI, которые я пытаюсь использовать:
c = CURSORINFO.new(20, 1, 1, POINT.new(1,1));
GetCursorInfo(c); #provides correctly filled structure with hCursor
DrawIcon(GetWindowDC(GetForegroundWindow()), 1, 1, c.hCursor);
Так что эта часть работает нормально, она рисует текущий курсор в активном окне. Но я не этого хочу. Я хочу получить массив пикселей, поэтому должен нарисовать его в памяти.
Я пытаюсь это сделать так:
hdc = CreateCompatibleDC(GetDC(0)); #returns non-zero int
canvas = CreateCompatibleBitmap(hdc, 256, 256); #returns non-zero int too
c = CURSORINFO.new(20, 1, 1, POINT.new(1,1));
GetCursorInfo(c);
DrawIcon(hdc, 1, 1, c.hCursor); #returns 1
GetPixel(hdc, 1, 1); #returns -1
Почему GetPixel () не возвращает COLORREF? Что мне не хватает?
Я не очень разбираюсь в WinAPI, поэтому, наверное, совершаю какую-то глупую ошибку.