wxWidgets:绘制 child

wxWidgets: Drawing over child

如何绘制wxPanel的child?我正在使用经典的绘画方式,

class Foo : public wxPanel {
...
    void on_paint(wxEventPaint &) {
        wxPaintDC dc(this);
        ... // stuff with dc
    }
...
}

但效果是我的东西被画了,然后 child 被画在上面了。我该如何做相反的事情?在 child?

上涂漆

我正在努力实现类似的结果:

所以我有带 EVT_PAINT 处理程序的 wxPanel 和 child 的 wxStaticText。我得到的是

画完child后如何画画?

或者我应该放弃整个 wxStaticText 的想法而只使用 DrawText 吗?这种方法有什么缺点吗?如果相关,我正在使用等宽字体。

wxWidgets 不支持在本机控件上绘制(或以其他方式干扰它们的绘制),而且永远不会。您应该自己绘制文本或使用(可能修改的版本)wxGenericStaticText,它完全在 wxWidgets 中实现,因此可以自定义,这与本机控件不同。