Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 画一个移动的图标,像鼠标光标一样一直处于顶部,适用于全屏应用程序_C++_Windows_Winapi_Mouse - Fatal编程技术网

C++ 画一个移动的图标,像鼠标光标一样一直处于顶部,适用于全屏应用程序

C++ 画一个移动的图标,像鼠标光标一样一直处于顶部,适用于全屏应用程序,c++,windows,winapi,mouse,C++,Windows,Winapi,Mouse,我需要画一个图标,它的移动与鼠标光标几乎同步,并且始终位于所有窗口的顶部。 操作系统:Windows7 我有一个解决方案,通过在顶部最透明的窗口中绘制图标,可以在一定程度上发挥作用。此解决方案存在一些主要缺点,因为最上面的窗口会干扰其他最上面的窗口,并且一些全屏应用程序无法正常工作。例如“开始”菜单和任务栏,如果我不经常将其设置为最顶端,它们将覆盖我的窗口。对于某些全屏应用程序,使用图标更新窗口位置的性能会大幅下降,并且不会顺利跟随鼠标 我遇到的另一种方法是,将图标直接绘制到桌面的设备上下文。这

我需要画一个图标,它的移动与鼠标光标几乎同步,并且始终位于所有窗口的顶部。 操作系统:Windows7

我有一个解决方案,通过在顶部最透明的窗口中绘制图标,可以在一定程度上发挥作用。此解决方案存在一些主要缺点,因为最上面的窗口会干扰其他最上面的窗口,并且一些全屏应用程序无法正常工作。例如“开始”菜单和任务栏,如果我不经常将其设置为最顶端,它们将覆盖我的窗口。对于某些全屏应用程序,使用图标更新窗口位置的性能会大幅下降,并且不会顺利跟随鼠标

我遇到的另一种方法是,将图标直接绘制到桌面的设备上下文。这个解决方案有一个缺点,就是似乎没有很好的方法来删除痕迹,尤其是在桌面内容变化很快的情况下

所以我的问题是:有没有一个最终的解决方案不存在上述问题? 可以在鼠标光标层的所有窗口上方绘制吗?或者用我的自定义图标制作第二个鼠标光标,我将控制它。我知道widows可以显示两个独立控制的鼠标光标,如CPNMouse

有人能给我指一下正确的方向吗


谢谢

使用通过WS_EX_LAYERED/UpdateLayeredWindow设置透明度的最顶层窗口。
如果您还设置了WS_EX_透明样式,则窗口将不会拦截鼠标输入。

这是我现在已经做的,请仔细阅读问题,但对于游戏等全屏应用程序,存在缺点,您需要经常将该窗口设置为最顶部,以便其他最顶部的窗口不会覆盖它。