Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

22.01.2008, 11:32

edit control und line breaks

also, ich hab grade bemerkt dass ich bei meiner "textbox" klasse etwas vergessen habe.

ich würde gern wenn ich in mein textfeld was reinschreiben lasse, dass der fokus dann in die nächste zeile springt..

ich schreibe mit swprintf() in die edit control.. das klassische '\n' funktioniert da leider nicht wie ich feststellen musste..

wie kann ich in einen line break in einer edit control machen? weiss das jemand?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

22.01.2008, 11:44

Ist für dein Textfeld denn ES_MULITLINE gesetzt? Außerdem solltest du "\r\n" verwenden.
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

22.01.2008, 11:55

ja, ES_MULTILINE ist gesetzt..


das \r\n hab ich auch schon versucht.

C-/C++-Quelltext

1
2
    int strsize = swprintf(buffer, size, L"%s%s \r\n", currentText, Text.c_str());
    SetWindowText(m_hwndTextBox, buffer);
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

22.01.2008, 11:58

Ach du meinst das "Caret". Um die Position zu ändern kannst du die Nachricht EM_SETSEL verwenden.
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

22.01.2008, 12:03

sorry.. jetzt steh ich an.. ist das Caret nicht dieses symbol: ^

kann ich der edit control nicht anders sagen dass sie in die nächste zeile gehn soll? dafür muss es doch einen string geben oder eine funktion a la endl; oder so.. O_o
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

22.01.2008, 12:04

Was hast du denn für ein Problem damit die Caretposition zu ändern? (Caret ist das blinkende "Ding" das die die Eingabeposition verrät).
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

7

22.01.2008, 12:16

irgendwie klappt das nicht so ganz ..

in der msdn steht außerdem:


EM_SETSEL Message
Selects a range of characters in an edit control
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

22.01.2008, 12:20

Genau, desweiteren steht da:

Zitat von »"msdn2"«


Edit controls: The control displays a flashing caret at the end position regardless of the relative values of start and end.


Niemand sagt ja das du mehr als einen Bereich von 0 selektieren musst! ;)
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

9

22.01.2008, 12:24

hmm.. in google hab ich einen forum post gefunden wo jemand folgendes gepostet hatt:

SendMessage(m_hwnd, EM_SETSEL, len, len);

aber damit klappts bei mir irgendwie nicht.


C-/C++-Quelltext

1
2
int CaretPosition = GetWindowTextLength(m_hwndTextBox) -1;
    SendMessage(m_hwndTextBox, EM_SETSEL, CaretPosition, CaretPosition);
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

22.01.2008, 12:30

Wie kommst du auf EM_SCROLL und seit wann gibt die GetWindowTextLength die Position des Caret zurück? :shock:
@D13_Dreinig

Werbeanzeige