wxStreamToTextRedirector换行符丢失

时间:2013-11-18 17:23:42

标签: c++ wxwidgets

我从wxStreamToTextRedirector 获得的结果是一行。新线丢失了......  wxStreamToTextRedirector只有一个参数应该将输出重定向到cout,我有  不知道为什么换行不被cout处理,因为......

更新:简化示例:产生相同的结果,即换行丢失。

    textctrl = new wxTextCtrl(this, -1, wxT(""), wxPoint(-1, -1),
     wxSize(250, 150));
{
    wxStreamToTextRedirector redirect(textctrl);
       string result = "line1\n Line2\n";
      cout << result;

}

Output ---> line1 Line2, as appears in the textctrl window. May it be that textctrl  
window does not interpret
\n correctly? I am using wxWidets on a Windows machine.

1 个答案:

答案 0 :(得分:0)

创建wxTextCtrl时,默认创建它时不支持多行。你必须告诉它你打算使用多行。如果您使用带有wxSmith的Code :: Blocks(我推荐),您可以在wxTextCtrl的属性中指定:

Multiline properties

如果您使用代码手动创建它,则只需在构造函数的 style 参数中指定wxTE_MULTILINE,如下所示:

textctrl = new wxTextCtrl(this, -1, wxT(""), wxPoint(-1, -1), wxSize(250, 150),wxTE_MULTILINE);

有关详情,请查看this page about the possible styles,特别是this section,了解构造函数。