3

I'm fighting against an anoying problem with my wxTextCtrl. Whatever I try, there is no way to add a new line. wxTextCtrl diplay a square character instead of a new line.
Here is the relevant code :

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");  

And i get :

Some text◻◻New line◻◻An other new line◻◻Again a new line

First I thought there was a problem with the Multiline property but detail->IsMultiLine() return true

any help will be appreciated,

Bastien
  • 994
  • 11
  • 25

1 Answers1

6

You must specify the Multiline property when you constrcut the object. You can not set this afterwards.

From the wxWidgets documentation it mentions this specifically:

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.

Instead of:

detail->SetWindowStyle(wxTE_MULTILINE);

this should work:

wxTextCtrl(this,wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
Devolus
  • 21,661
  • 13
  • 66
  • 113
  • Thanks a lot for this precision, I had not read this part of the doc, my bad. Anyway, thanks to you it is working now. – Bastien May 22 '13 at 08:39