tabstop
-
Hallo
Ich versuche in einem Richedit Feld vom Programm aus den Cursor zum nächsten
Tabstop zu setzen mit:SendMessage(hWnd, WM_KEYDOWN,(WPARAM)VK_TAB,0);Doch das funkioniert so nicht. Was ist hier falsch ?
danke im Voraus
Linus
-
hWnd ist der Handle zum RichEdit Control?
Das Control hat den Eingabefocus?
-
Ja, hwnd ist das handle vom richedit
Den Eingabefocus hat ein anderes Steuerelement.
Aber ich denke , dass der Einagbefocus nicht das Problem sein kann ,
denn ich sende ja mehrere Nachrichten hintereinander an dieses Richedit.... tl=GetWindowTextLength(hWnd); SendMessage(hWnd,EM_SETSEL,tl,tl); // letzte Stelle Markieren SendMessage(hWnd,EM_REPLACESEL,FALSE,(LPARAM) Text1); // Text1 angehängt tl=GetWindowTextLength(hWnd); // wieder letzte Stelle SendMessage(hWnd,EM_SETSEL,tl,tl); // und markiert SendMessage(hWnd,WM_KEYDOWN,(WPARAM),VK_TAB,0); //Tabulator-Taste simulieren tl=GetWindowTextLength(hWnd); SendMessage(hWnd,EM_SETSEL,tl,tl); // letzte Stelle Markieren SendMessage(hWnd,EM_REPLACESEL,FALSE,(LPARAM) Text2); // Text2 angehängt ...die Texte werden ja geschrieben nur WM_KEYDOWN kommt nicht an .
-
Sende das mal zum Hauptfenster.
-
da kommt gar nichts noch nicht einmal text
-
PostMessage(GetParent(hWnd), WM_KEYDOWN,(WPARAM)VK_TAB,0);
-
Text wird ausgegeben aber ohne Tabstop
Erklärung:
Ich programmiere einen Chat und dort wird in einem EditFenster der Text eingegeben.
Dann durch Enter oder klick auf Button [senden] soll der Text
mit dem Namen desjenigen der den Text geschickt hat in ein Richeditfenster
geschrieben werden also .z.BHeinz: text1
Müller2: text2
00: text3so in etwa.
Das ganze geschieht in einer Funktion
TextSchreiben(HWND hWnd , char * text1,char * text2)
abgearbeitet.
-
habs jetzt anders gemacht

einfach das Zeichen mit dem Integerwert 9 (=Tab) eingesetzt
jetzt funktioniert es
Trotzdem wäre es schön zu wissen wie man
Tastatureingaben im Richedit simulieren kannVielleicht weis das ja jemand ????
Danke und Gruss
Linus