我正在编写有趣的小工具。 我想能够在原始鼠标的不同位置绘制第二个(或更多)鼠标指针图标,但要根据原始鼠标的移动来移动它。
我知道如何跟踪鼠标的移动,但我不知道如何绘制/重绘鼠标指针; 谁能帮忙?
这可以像这样完成:
(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);