0

パネルを作成し、ペイント イベントでグラデーションを実行しています。パネルの上に wxTRANSPARENT_WINDOW スタイルの wxstaticbitmap を作成していますが、staticbitmap の背景はグラデーション カラーの代わりに親の背景色を示しています。私のコード

注:pngタイプの画像を使用しています

コード:

MWpanel::MWpanel()
{
wxbitmap bitmapPNG
wxStaticBitmap *bit = new wxStaticBitmap(this ,-1 ,bitmapPNG ,wxDefaultPosition ,wxDefaultSize ,wxTRANSPARENT_WINDOW)

}
MWpanel::OnPaint(wxPaintEvent &event)
{
wxColour col1
wxColour col2
wxBufferedPaintDC dc(this);
dc.GradientFillLinear(wxRect(0, 0, this->GetSize().GetWidth(), this->GetSize().GetHeight()), col1, col2, wxSOUTH);

}
4

1 に答える 1

0

ではなくSetBackgroundStyle(wxBG_STYLE_TRANSPARENT)を使用する必要がありますwxTRANSPARENT_WINDOW。コード例については、wxWidgets に含まれる「消去」サンプルを参照してください。

于 2013-08-07T10:37:09.893 に答える