c++ - 我如何清除状态栏文本 wxwidgets C++

标签 c++ .net wxwidgets

 void TestFrame::UpdateStatusBar(wxString color, wxString message)
{
  wxStatusBar* bar = wxFrame::GetStatusBar();
  bar->SetStatusText("", 0);
  wxStaticText* txt = new wxStaticText(bar, wxID_ANY, wxT(""), wxPoint(10, 5), wxDefaultSize, 0);
 bar->SetForegroundColour(wxColour(color));
 txt = new wxStaticText(bar, wxID_ANY, message, wxPoint(10, 5), wxDefaultSize, 0);
  txt->Show(true);
}

预期行为

清除以前的状态栏文本。 向状态栏添加新文本

实际行为

文本没有被清除,新的文本被添加到顶部并且之前的文本溢出。

最佳答案

每次您创建一个新的 wxStaticText 并将您的 wxStatusBar 作为父对象,而不是修改任何现有的文本字段,您正在创建一个额外的文本对象并将状态栏设置为其父对象。这些将一直存在,直到它们被删除。

当您想更改状态栏中特定现有字段的文本时,您应该使用 bar->SetStatusText 或 bar->PushStatusText。

关于c++ - 我如何清除状态栏文本 wxwidgets C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46237399/

相关文章:

c++ - 从 GtkWidget 获取 X11 窗口句柄

c++ - 控件在 snake 中没有正确响应

c++ - 是否可以在 C++0x 中使用 auto 执行以下操作?

c# - 我是否需要同时安装 64 位 * 和 * x86 版本的 .Net SP2?

mysql - 使用散列密码进行身份验证?

http - 从 wxWidgets 应用程序通过 HTTPS POST 发送反馈数据

c++ - 您将如何将 Alexandrescu 的 Expected<T> 与 void 函数一起使用?

c++ - 最快的语音识别库 C++

c# - 使用 ServerCertificateValidationCallback 的最佳实践

c++ - wxWidgets - Alpha 混合