c++ - wxWidgets 透明 wxTextCtrl

标签 c++ c++11 wxwidgets transparent wxtextctrl

我正在尝试创建一个自定义透明 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;
    }
}

但它不起作用,它不透明,我应该如何正确地做到这一点?

最佳答案

抱歉,您无法使 native 控件透明。您可以使用 wxGTK 自定义透明控件(请参阅“删除”示例),但不能使用 native 控件。

关于c++ - wxWidgets 透明 wxTextCtrl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38704899/

相关文章:

c++ - vector 和迭代器,打印出值而不是内存地址

c++ - 对于具有抛出复制构造函数和 noexcept 按值复制赋值的类,is_nothrow_copy_assignable 的值是多少?

函数模板的 C++ 问题(未找到实例)

c++ - 使用涉及 wxFileName 的任何内容时内存泄漏

linux - 无法在 Ubuntu ./webupdater 上执行二进制文件

c++ - ZeroMq:打开的文件太多。同一对象上的 fd 使用量持续增长

c++ - 如何附加 C 和 C++ 模块?

c++ - wxWidgets:如何在不将控制权传递给它的情况下制作图形用户界面?

c++ - 需要相互引用的两个对象。馊主意?

c++ - 如何编写工厂函数来初始化 C++ 中的 constexpr 引用?