A capo un un edit

di il
2 risposte

A capo un un edit

Eccomi di nuovo qui alle prese con le win api.
Questa volta mi trovo a dover spedire un messaggio per mandare a capo il cursore all'interno di un controllo edit.

il messaggio che potrei usare per farlo potrebbe essere

SendMessage(hEdit,WM_SETTEXT,(WPARAM)0, (LPARAM)\"\\n\");

solo che quando il messaggio viene inviato, il cursore, invece di andare a capo, visualizza un carattere strano... qualcuno ha qualche suggerimento?

2 Risposte

  • Re: A capo un un edit

    Ciao,

    Innanzitutto controlla di aver impostato adeguatamente gli stili ES_MULTILINE ed ES_WANTRETURN ed eventualmente ES_AUTOHSCROLL e ES_AUTOVSCROLL .

    Supposto questo, invece della WM_SETTEXT utilizza una SetWindowText che accetta gli stessi parametri ma accetta come input una LPCTSTR (è possibile che se hai impostato l'unicode per default la chiamata alla SETTEXT fallisca perché non riceve quello che si aspetta).

    La SetWindowText non può impostare il testo su altri processi, in quel caso la SETTEXT è l'unica possibilità, prova in caso a vedere se hai l'unicode come default tra le proprietà del progetto).

    Ciaociao
  • Re: A capo un un edit

    E per secondo, dovresti usare \"\\r\\n\" invece che solo \"\\n\".
    Tieni poi presente che la SetText sostituisce la vecchia stringa con quella che gli mandi. Se il tuo scopo è inserire un \"a capo\" nel punto in cui si trova il cursore, devi leggere il testo, Leggere la posizione del cursore, inserire \"\\r\\n\" nella stringa, e inviare la nuova stringa.
Devi accedere o registrarti per scrivere nel forum
2 risposte