Limitare il testo immessi dall'utente

Il limite predefinito per la quantità di testo, che un utente può entrare in un controllo di modifica è 32 kilobyte. Un'applicazione può modificare la quantità di testo, che l'utente può immettere mediante l'invio di un messaggio di EM_SETLIMITTEXT il controllo. Questo messaggio imposta un limite rigido il numero di byte che l'utente possa entrare in un controllo di modifica, ma colpisce il testo che è già nel controllo quando il messaggio è stato inviato né testo copiato al controllo con la funzione SetDlgItemText o il messaggio WM_SETTEXT . Si supponga ad esempio che l'applicazione utilizza la funzione SetDlgItemText per inserire 500 byte in un controllo di modifica, e l'utente immette anche 500 byte (totale di 1000 byte). Se l'applicazione invia un messaggio EM_SETLIMITTEXT, limitando il testo immessi dall'utente a 300 byte, 1000 byte già nel controllo di modifica rimangono lì, e l'utente non è possibile aggiungere qualsiasi altro testo. D'altra parte, se l'applicazione invia un messaggio EM_SETLIMITTEXT, limitando il testo immessi dall'utente a 1300 byte, rimangono i 1000 byte, ma l'utente può aggiungere 300 più byte.

Quando l'utente raggiunge il limite di caratteri di un controllo di modifica, il sistema invia un messaggio WM_COMMAND che contiene un messaggio di notifica EN_MAXTEXT l'applicazione. Questo messaggio di notifica non significa che la memoria è stata esaurita, ma che è stato raggiunto il limite per il testo immessi dall'utente; l'utente non può inserire qualsiasi altro testo. Per modificare tale limite, un'applicazione deve inviare il controllo un nuovo messaggio EM_SETLIMITTEXT, con un limite superiore.

Un esempio dell'uso di EM_SETLIMITTEXT ed EN_MAXTEXT, si supponga che l'applicazione deve limitare l'utente a non più di quattro caratteri di un controllo di modifica. L'applicazione sarebbe utilizzare EM_SETLIMITTEXT per specificare un limite di quattro caratteri. Se l'utente ha cercato di entrare un quinto carattere, il sistema di inviare un messaggio di notifica EN_MAXTEXT all'applicazione.

Rimedio: Inserire il CD-ROM CD di MSDN Library.

Index