我正在尝试创建一个自定义的透明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;
}
}但是它不工作,它不透明,我该如何正确地做它呢?
发布于 2016-08-02 16:58:45
很抱歉,您将无法使本机控件透明。您可以使用wxGTK拥有自定义的透明控件(请参阅"erase“示例),但不能使用本机控件。
https://stackoverflow.com/questions/38704899
复制相似问题