绘制鼠标指针图标?

我正在编写有趣的小工具。 我想能够在原始鼠标的不同位置绘制第二个(或更多)鼠标指针图标,但要根据原始鼠标的移动来移动它。

我知道如何跟踪鼠标的移动,但我不知道如何绘制/重绘鼠标指针; 谁能帮忙?

这可以像这样完成:

(1)使用LoadCursor( http://msdn.microsoft.com/zh-cn/library/aa924571.aspx )从应用程序中抓取当前鼠标光标。 只需指定NULL和所需的游标。 或者只是为光标加载一个位图。 现在,你有一个位图。

(2)下一步是获取桌面的设备上下文:GetWindowDC(NULL)更多: http : //msdn.microsoft.com/en-us/library/dd144947%28v=vs.85%29.aspx 。 这将使您有机会在任何地方绘制桌面

(3)您很可能需要使用(2)处获得的DC将(1)上的图像应用于CreateCompatibleBitmap( http://msdn.microsoft.com/zh-cn/library/aa922174

(4)现在,使用一些BitBlt将位于(2)处获得的DC的位OUT复制到想要放置光标的位置的保存图像(您将需要创建这些图像)。

现在,将(3)处获得的图像放在(2)处获得的桌面DC上的所需位置。

当用户移动鼠标时,用(4)处保存的数据恢复桌面上的图像。 释放所有你不需要的东西(是的,这是强制性的)。

并从(1)重新启动。

这两个更多的链接可能会有所帮助: http : //www.winprog.org/tutorial/bitmaps.html和http://msdn.microsoft.com/en-us/library/dd183402%28v=vs.85%29.aspx

祝你好运!

您可以使用下面的代码:

CURSORINFO ci; GetCursorInfo(&ci); 

接下来你可以通过调用一个光标

 DrawIcon(ContextDC, YourXPosition, YourYPosition, ci.hCursor); 

如果您需要有关游标的其他信息,例如热点,请检查ICONINFO结构:

 ICONINFO ii; GetIconInfo(ci.hCursor, &ii);