c++ - C++ 中的跨平台透明窗口?

标签 c++ cross-platform transparency

我想知道如何使窗口透明,而不是切孔或整体透明度相同。

好吧,就说我想拍一张玫瑰或其他东西的 PNG 图像,让它与后面的东西很好地融合,并允许后面的东西重新绘制,并让它们的变化通过图片/窗口的透明部分闪耀。

我可以(或愿意)使用 wxWidgets 或 OpenGL 之类的东西。而不是 Qt 或 GTK。

最佳答案

我发现使用 wxW 在屏幕上显示透明图片其实非常简单:

wxScreenDC dc;

wxBitmap bmp(wxT("test.png"), wxBITMAP_TYPE_PNG);
dc.DrawBitmap(bmp, 250, 100, true);

现在我必须弄清楚如何处理更新等,它必须在更新时(可能部分重绘)。

就目前而言,它只是在自身之上重新绘制自身,使其在一段时间内变得完全不透明。

有另一个版本的 wxScreenDC::DrawBitmap 将窗口作为参数,也许它解决了这个问题?

关于c++ - C++ 中的跨平台透明窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/993777/

相关文章:

c++ - 通过引用传递数组

c# - C++ 函数作为参数

c++ - 如何在不指定模板的情况下声明函数模板指针typedef?

javascript - 启动画面的 ionic 动画

flutter - 收听传入的通知 Flutter

java - 忽略透明部分的图像的 2D 碰撞检测

ios - 为什么纹理表面的透明和不透明区域之间存在暗边/光晕(在 opengl es 2.0 片段着色器中)

c++ - C++ 中将内置类型 (int) 转换为 bool 的首选方法是什么?

java - 如何读取具有透明度的 java BufferedImage 中的像素颜色

Python 的 setup.py : how to install different files for different platforms