DrawIconEx和DrawIcon只绘制非动画的加载图标

DrawIconEx and DrawIcon only draw a non animated Loading icon

本文关键字:动画 加载 图标 绘制 DrawIcon DrawIconEx      更新时间:2023-10-16

我目前正在camstudio_cl(这里如果感兴趣)。现在的问题是,我必须将光标绘制到HDC中。

当前是这样做的(缩短):

HCURSOR hcur = GetCursor();
::DrawIconEx( hMemDC, xPoint.x, xPoint.y, hcur, 0, 0, 0, NULL, DI_NORMAL);

问题是,无论屏幕上显示的是哪个光标,这只会绘制一个非动画的加载光标。但是如果你把HCURSOR替换为一个已定义的HICON,在这个例子中是一只手,它就可以工作了:

::DrawIconEx( hMemDC, xPoint.x, xPoint.y, LoadCursor(IDC_HAND), 0, 0, 0, NULL, DI_NORMAL);

所以问题似乎是GetCursor()函数,但它不是空的,我检索句柄。我还尝试用GetIconInfo和这个线程的帮助创建我自己的游标,但我失败了。它只是一个黑色的正方形,里面有一些白点。

我希望有人能帮我一下。

感谢Raymond Chen,我得到了…我只是想让这个问题按照标记得到回答。

我必须获得全局而不是本地游标句柄。

  CURSORINFO pci;
  pci.cbSize = sizeof(CURSORINFO);
  GetCursorInfo(&pci);
  return pci.hCursor;