【问题标题】:How does Rainlendar achieve transparency with wxWidgetsRainlendar 如何使用 wxWidgets 实现透明度
【发布时间】:2009-04-13 23:35:17
【问题描述】:

Rainlendar 是一个用 wxWidgets 编写的出色的跨平台日历程序。它是如何实现透明效果的?有没有人有任何演示透明效果的示例代码?

【问题讨论】:

    标签: wxwidgets


    【解决方案1】:

    我的猜测是他们可能会使用wxScreenDC 直接在屏幕上绘制(同时保留背景内容)。与接收绘制事件或擦除事件不同,您可以根据自己的选择在堆栈上创建wxScreenDC,这意味着您需要刷新自己(很可能通过某种计时器)。如果您不这样做,后台应用程序最终会在您的 wxScreenDC 内容上重新绘制自己。

    Here's the API listing

    编辑:澄清一下,用法(除了需要调用 StartDrawingOnTop 和 EndDrawingOnTop)与任何其他 wxDC 相同。

    【讨论】:

      【解决方案2】:

      wxTopLevelWindow::SetTransparent() 方法可能是你需要的。

      【讨论】:

      • SetTransparent 使整个窗口透明。这个日历的想法(它看起来)是它将完全不透明的图像绘制到透明背景上(SetTransparent 将使所有内容都同样透明)。
      猜你喜欢
      • 2010-09-23
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 2010-11-21
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      相关资源
      最近更新 更多