DrawRectangle() 不会在最顶层的元素层上绘制

DrawRectangle() does not draw on topmost Layer of elements

本文关键字:元素 绘制 DrawRectangle      更新时间:2023-10-16

我有一个wxFrame,其中包含多个wxTextCtrl和自定义图像类的其他成员,该图像类派生自wxWindow并具有wxImage成员。

wxFrameOnPaint事件函数中,我绘制了一个矩形,该矩形应该位于位图的顶部,但一直被绘制在wxTextCtrlswxBitmaps后面的最底层。

这是我的OnPaint()

void MyPanel::OnPaint(wxPaintEvent& /*event*/)
{
        wxPaintDC paintDC(this);
        paintDC.SetBrush(wxBrush(wxColour(90, 156, 214, 255)));
        paintDC.SetPen(wxPen(wxColour(90, 156, 214, 255)));
        wxRect oRect(10,10,800,900);
        paintDC.DrawRectangle(oRect);
}

我用Refresh()MyPanel内称呼OnPaint

在这些

情况下,最可能的原因是绘制对象附加到窗口的顺序,即您可以在其余绘制对象的函数之后调用DrawRectangle()函数,但如果将DrawRectangle()的结果附加到其他对象之前,它仍然保留在底部。

这实际上不是一个问题,但是,是的,为了确认您编写的内容:不,您不能在其他控件上绘制,它根本不像这样工作。我不确定你想做什么,但你需要找到另一种方法。