我已经知道可以通过 win32 api 设置一个窗口的透明度,但是这会使得整个窗口都是透明的。
我希望实现在透明的窗口背景上绘制不透明的内容,怎么做呢?
我已经知道可以通过 win32 api 设置一个窗口的透明度,但是这会使得整个窗口都是透明的。
我希望实现在透明的窗口背景上绘制不透明的内容,怎么做呢?
我研究了四天了,加上今天是第五天了,发现了一个邪道方法,小部分应用在电脑颜色诱色少女身上,SetLayeredWindowAttributes 函数 不好用,只能用 UpdateLayeredWindow 加 getimage 加 saveimage 加 StretchBlt
加 loadimage,这几个函数组合能实现,窗口背景透明但是绘制的内容不透明,先使用 UpdateLayeredWin 设置全场透明,再 使用 getimage 获取绘制的内容,输出 saveimage 函数,saveimage 函数输出至 桌面,loadimage 加载 saveimage 函数保存至桌面的绘图,至 StretchBl 函数 再用 putimage 函数输出,就不是透明的了,很实用。其中最重要的是StretchBlt 函数,该函数的 hdc 能破坏掉 UpdateLayeredWin 的全场透明。即是 BUG 也是实用的