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.B

    Heinz: text1
    Müller2: text2
    00: text3

    so 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 kann

    Vielleicht weis das ja jemand ????

    Danke und Gruss
    Linus


Anmelden zum Antworten