wxWidgets Overlay Text(C ++)

时间:2016-09-15 18:12:51

标签: c++ overlay wxwidgets

我正在尝试在wxPanel上放置一些叠加文本。 我有几个具有完全不同内容的面板,但我想将这个叠加文本放在面板右上角的所有这些面板上。 我被限制为wxWidgets 2.8.12 .. 你有没有办法实现这种行为?

编辑: 这里有一些我想要做的更详细的版本: Layout with 5 containers

我有一个由例如5个容器和每个容器可以包含一个模块。模块可以是包含纯文本或输入控件的wxPanel,也可以是OpenGL画布或Image或其他内容。

因为我有很多内容而且它不适合单个页面,所以我想让Container内的模块可以交换。如果用户只能通过使用键盘来执行此操作,那也很好。例如。如果他按下“3”键,则必须切换第三个容器的内容。

处理这些快捷方式不是问题。但是,我需要向用户发出容器的标识符/热键信号。 我可以通过在每个容器上方放置一个额外的标题来做到这一点,但我想在gui上浪费尽可能少的空间。 我也可以直接绘制模块内容,但我必须为每个模块执行此操作,并且每个模块都以不同的方式设计(图像,多列,opengl,...),甚至可能由不同的人设计。

所以我正在寻找一个简单的解决方案,以指出这些容器的数量不会占用太多空间。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以使用wxWindowDC在窗口上的任何位置绘制,即使在子窗口上也是如此。但是,无论何时窗口或控件都重新绘制,您绘制的任何内容都将被绘制。您可以在UpdateUI事件处理程序中绘制叠加层以最小化此操作。我使用wxWidgets 2.8.12在Windows上成功使用了这种方法。不确定它是否适用于OpenGL。