cocos Win32 程序实现背景透明效果

先上一张图

1、CCGLViewImpl-desktop.cpp
initWithRect 方法中增加一句
glfwWindowHint(GLFW_DECORATED, GL_FALSE); //没有边框和标题栏 FYD MUST

2、CCFrameBuffer.cpp
FrameBuffer 构造函数当中 初始化clearColor
_clearColor(Color4F(0, 0, 0, 0)) //FYD 无色透明

3、SimulatorWin.cpp 方法当中
增加头文件和预编译项
#include<Dwmapi.h>
#pragma comment(lib, “dwmapi”)

run 方法中,_hwnd = glview->getWin32Window();的下面
增加:
DWM_BLURBEHIND bb = { 0 };
bb.dwFlags = DWM_BB_ENABLE;
bb.fEnable = true;
bb.hRgnBlur = NULL;
DwmEnableBlurBehindWindow(_hwnd, &bb);
4、完成上面三步已经可以显示桌面精灵的效果了,
但是会存在一个问题,透明区域无法点击穿透,再加上一段代码就好了

DWORD exStyle = ::GetWindowLong(_hwnd, GWL_EXSTYLE);
exStyle |= WS_EX_LAYERED;
::SetWindowLong(_hwnd, GWL_EXSTYLE, exStyle);
::SetLayeredWindowAttributes(_hwnd, 0x0, 0, LWA_COLORKEY);

5、经过第四步之后已经可以透过透明区域点击到下面的窗口了,
但是还会有一个问题,即有图片的区域也能够点击穿透,这就比较尴尬了。。
然后你就会发现,点击事件失效了。。。

简而言之就是 如果不加第四步,可以点击,单不能透明区域穿透,加了不能点击,但是可以穿透。。。
暂时没找到啥思路,有兴趣的朋友可以试试,如果有解决方法了,也可以回复下:14:

#include “Dwmapi.h“
#pragma comment(lib, “dwmapi”)
这里尖括号导致没显示出来哈,补上

大佬,我是小白,这个是加在哪里,不知道怎么找