我想盡可能準確地將Windows系統上的系統光標捕獲爲位圖。 爲我提供的API是我所知的GetCursorInfo,DrawIconEx。捕獲動畫系統光標的哪一步正在Windows上顯示
的動作的簡單鏈是:
- 通過使用GetCursorInfo
- 通過使用DrawIconEx油漆在存儲器DC光標獲取光標。
下面是代碼粗略的樣子。
CURSORINFO CursorInfo;
(VOID)memset(&CursorInfo, 0, sizeof(CursorInfo));
CursorInfo.cbSize = sizeof(CursorInfo);
if (GetCursorInfo(&CursorInfo) &&
CursorInfo.hCursor)
{
// ... create here the memory DC, memory bitmap
boError |= !DrawIconEx(hCursorDC, // device context
0, // xLeft
0, // yTop
CursorInfo.hCursor, // cursor handle
0, // width, use system default
0, // height, use system default
0, // step of animated cursor !!!!!!!!!
NULL, // flicker free brush, don't use it now
DI_MASK | DI_DEFAULTSIZE); // flags
// ... do whatever we want with the cursor in our memory DC
}
現在,任何人都知道我怎麼能拿正在繪製該動畫光標的步驟(我需要可以再傳給DrawIconEx的istepIfAniCur參數的值)?目前上面的代碼顯然總是隻呈現動畫光標的第一步。
我懷疑這是不容易做到的,但無論如何它值得問。
嗨大衛, 我需要知道正在繪製動畫光標的哪一步,以便我可以將該值傳遞給DrawIconEx。有關創建DC的註釋將替換所有關於創建DC,位圖,選擇位圖的代碼。這不是問題。 – 2008-10-13 08:33:20