我想在一個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需要alpha工程,wxWidgets對它的支持有限。對於Windows,你需要,比如gdiplus。 –
我並不完全需要阿爾法。在24位中是不可能的。只有一種顏色是透明的? –
http://msdn.microsoft.com/en-us/library/dd145141%28v=VS.85%29.aspx –