Я хочу записать в качестве растрового изображения системный курсор на ОС Windows как можно точнее.
Предоставленный API для этого, насколько мне известно, GetCursorInfo, DrawIconEx.
Простая цепочка действий:
- Получить курсор с помощью GetCursorInfo
- Нарисуйте курсор в DC памяти с помощью DrawIconEx.
Вот как примерно выглядит код.
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
}
Теперь кто-нибудь знает, как я мог узнать, какой шаг анимированного курсора рисуется (мне нужно значение, которое затем можно передать параметру istepIfAniCur в DrawIconEx ...)? В настоящее время приведенный выше код, очевидно, всегда отображает только первый шаг анимированного курсора.
Я подозреваю, что это нелегко сделать, но все равно стоит спросить.