2017-01-03 4 views
0

Ich habe mit wxTextCtrl gearbeitet und eine interessante Sache gefunden. Wenn ich maximale Länge als kleine Zahl (250, 500, 10000) einstelle, funktioniert es gut. Aber wenn ich größere Zahlen (20000, 100000) einsetze, funktioniert es nicht (ich kann über das Limit gehen und keinen Rückruf). Ich weiß nicht, wie ich es beheben kann. Bitte, helfen Sie.Auf WxTextCtrl Max Länge Callback

wxWidgets 3.0.2

Windows-

wxTextCtrl wxTE_BESTWRAP | wxTE_MULTILINE | wxBORDER_NONE | wxTE_AUTO_SCROLL | wxTE_AUTO_URL

Antwort

0

Gefunden in Datei textctrl.cpp, Methode

bool wxTextCtrl::HasSpaceLimit(unsigned int *len) const 

Linie, die alles

return *len < 10001; 
macht
0

Idealerweise sollte SetMaxLength() natürlich für jede Länge funktionieren, aber es ist wirklich dazu gedacht, mit kleinen Längen und einzeiligen Texteingabekontrollen verwendet zu werden, z.B. einen Ländercode auf 2 oder 3 Buchstaben beschränken. Und in portablem Code kann man es überhaupt nicht mit wxTE_MULTILINE Controls verwenden, wie in der Dokumentation erwähnt, weil das bei GTK + einfach nicht funktioniert.

Also mein Rat wäre, es für etwas zu verwenden, für das es nicht entworfen wurde, obwohl das im Prinzip ein Fehler in wxMSW sein könnte, der behoben werden konnte - aber aus den erklärten Gründen ist es eher ein Fehler mit niedriger Priorität.

Verwandte Themen