wxTextCtrl新行问题

时间:2013-05-22 07:46:54

标签: c++ wxwidgets wxtextctrl

我正在与我的wxTextCtrl打一个恼人的问题。无论我尝试什么,都无法添加新线。 wxTextCtrl显示方形字符而不是新行。
以下是相关代码:

wxTextCtrl  * detail = new wxTextCtrl (this,wxID_ANY);
detail->SetWindowStyle(wxTE_MULTILINE);
detail->SetEditable(false);

detail->AppendText("Some text");
detail->AppendText("\n New line");
detail->AppendText("\n An other new line\n");
detail->AppendText("Again a new line");  

我得到了:

  

一些文字◻◻新线◻◻另一条新线◻◻再换一条新线

首先我认为多行属性存在问题,但detail->IsMultiLine()返回true

任何帮助将不胜感激,

1 个答案:

答案 0 :(得分:4)

在构建对象时,必须指定Multiline属性。之后你不能设置它。

从wxWidgets文档中,它具体提到了这一点:

Note that alignment styles (wxTE_LEFT, wxTE_CENTRE and wxTE_RIGHT) can be changed dynamically after control creation on wxMSW and wxGTK. wxTE_READONLY, wxTE_PASSWORD and wrapping styles can be dynamically changed under wxGTK but not wxMSW. The other styles can be only set during control creation.

而不是:

detail->SetWindowStyle(wxTE_MULTILINE);

这应该有效:

wxTextCtrl(this,wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);