Ich habe versucht, eine neue Zeile in einem Bearbeitungssteuerelement zu erstellen. Ich habe den Beispielcode von verwendet Win32 - Anhängen von Text an ein Bearbeitungssteuerelement mit nur wenigen kleinen Änderungen
Um die Frage zu Multi-Line zu beantworten, ja.
CreateWindow("EDIT","",WS_CHILD|WS_VISIBLE|ES_MULTILINE,
0,0,300,500,hwnd,(HMENU)1,inst,NULL);
Hier ist der bearbeitete Code
// get edit control from dialog
HWND hwndOutput = GetDlgItem( hwnd, IDC_OUTPUT );
// get the current selection
DWORD StartPos, EndPos;
SendMessage( hwndOutput, EM_GETSEL, reinterpret_cast<WPARAM>(&StartPos), reinterpret_cast<WPARAM>(&EndPos) );
// move the caret to the end of the text
int outLength = GetWindowTextLength( hwndOutput );
SendMessage( hwndOutput, EM_SETSEL, outLength, outLength );
//INSERTED CODE INSERTED CODE INSERTED CODE INSERTED CODE INSERTED CODE
// insert newline
SendMessage( hwndOutput, EM_REPLACESEL, TRUE, reinterpret_cast<LPARAM>((TCHAR*)"nr") );
int outLength = GetWindowTextLength( hwndOutput );
SendMessage( hwndOutput, EM_SETSEL, outLength, outLength );
//INSERTED CODE INSERTED CODE INSERTED CODE INSERTED CODE INSERTED CODE
// insert the text at the new caret position
SendMessage( hwndOutput, EM_REPLACESEL, TRUE, reinterpret_cast<LPARAM>(newText) );
// restore the previous selection
SendMessage( hwndOutput, EM_SETSEL, StartPos, EndPos );
Der Text wird wie erwartet angehängt, aber es gibt noch keine neue Zeile. Was vermisse ich?
Antworten:
0 für die Antwort № 1Hier ist dein Code:
SendMessage( hwndOutput, EM_REPLACESEL, TRUE, reinterpret_cast<LPARAM>((TCHAR*)"nr") );
Sie schrieben nr
Anstatt von rn
.
Hoppla.