我想在 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 不是很有经验,所以我可能犯了一些愚蠢的错误。