wxPanelに角が丸い四角形を描きたい。 以下に示すように、私はそれを透明にすることができません。白い部分は透明でなければなりません。パネル上に透明なビットマップを描画する
灰色の領域は、ビットマップであり、その下wxPanel背景があります。 ビットマップ(wxBitmap)を描画するための私のコードは
wxMemoryDC temp;
bitmap.Create(kWidth, kHeight);
temp.SelectObject(bitmap);
temp.SetBackground(*wxWHITE_BRUSH);
temp.Clear();
temp.SetPen(wxPen(wxColor(80, 80, 80), 1));
temp.SetBrush(*wxTRANSPARENT_BRUSH);
temp.DrawRectangle(0, 0, kWidth, kHeight);
temp.SetBrush(wxBrush(backgroundColor));
temp.DrawRoundedRectangle(0, 0, kWidth, kHeight, kRadius);
と(リフレッシュのため)blitingのためである私のコードは
void draw(wxDC& dc, wxPoint mousePosition)
{
wxMemoryDC temp;
temp.SelectObject(bitmap);
dc.Blit(wxPoint(kLeft, kTop), temp.GetSize(), &temp, wxPoint(0, 0), wxCOPY, true);
}
である。しかし上記のように出力されます。 私は何が間違っていますか?
ビットマップのピクセル形式は、* depth *引数をビットマップコンストラクタで指定しないでください。 32bppはアルファ版が必要なので、wxWidgetsはそれをサポートしていません。 Windowsの場合は、gdiplusが必要です。 –
私はアルファを必要としません。 24ビットでは不可能です。ただ一つの色が透明になりますか? –
http://msdn.microsoft.com/en-us/library/dd145141%28v=VS.85%29.aspx –