Я пытаюсь создать кастом прозрачный wxTextCtrl
отъезжая от него и рисуя сам текст следующим образом:
BEGIN_EVENT_TABLE(TextLayer, wxTextCtrl)
EVT_PAINT(TextLayer::OnPaint)
EVT_ERASE_BACKGROUND(TextLayer::OnEraseBackground)
END_EVENT_TABLE()
void TextLayer::OnEraseBackground(wxEraseEvent& event) {}
void TextLayer::OnPaint(wxPaintEvent & evt)
{
wxAutoBufferedPaintDC dc(this);
PrepareDC(dc);
wxGraphicsContext *gc = wxGraphicsContext::Create( dc );
if(gc)
{
dc.SetFont(GetFont());
dc.SetTextForeground(GetForegroundColour());
auto a = GetValue();
dc.DrawText(GetValue(), 0, 0);
delete gc;
}
}
но это не работает, это не прозрачно, как я должен делать это правильно?
Извините, но вы не сможете сделать прозрачный нативный элемент управления. У вас могут быть настраиваемые прозрачные элементы управления с помощью wxGTK (см. Пример «стирания»), но не встроенные.
Других решений пока нет …