CEdit Field - DT_VCENTER auch beim OnSetFocus() Event
-
Hi,
hab eine Frage bezüglich CEdit Controls. Komm grad alleine nicht drauf.
In meiner OnPaint() Methode setze ich den Text
dc.DrawText(test, test.GetLength(), rect, DT_CENTER | DT_SINGLELINE | DT_VCENTER);
vertikal zentriert. Ich muss dazusagen, dass ich das CEdit Control vergrößert habe. Im Normalfall wird der Text nicht mehr mittig angezeigt, sondern weiter oben im Editfield. Deshalb verwende ich in der OnPaint() MEthode DT_VCENTER.
Wenn ich jetzt das Editfeld mit Maus anklicke, dann sehe ich den Textinhalt allerdings wieder oben drüber.... Wie kann ich das verhindern?
Ich möchte dass beim OnSetFocus() Event, der Cursor sich auch mittig im Editfiedl befindet. Wie in welcher Methode kann ich das erreichen?
Gruß´
Damian
-
Warum malst Du überhaupt selber.
BTW: Es gibt EM_SETRECT
http://msdn.microsoft.com/en-us/library/bb761657(VS.85).aspx
-
Martin Richter schrieb:
Warum malst Du überhaupt selber.
BTW: Es gibt EM_SETRECT
http://msdn.microsoft.com/en-us/library/bb761657(VS.85).aspxWenn ich nicht selber zeichne und nur myEditField.SetWindowText(_T("text")); dann wird dieser nicht mittig im Editfield dargestellt.
Gibt es hier dann irgendeine Einstellung die man mit ModifyStyle oder ähnlichem zuvor setzen muss?
Gruß
Damian
-
ES_CENTER verwenden. Den Rest mit EM_SETRECT!
Du musst gar n icht selbst zeichnen! Zudem es bei Edit Control meistens sowieso nicht geht.