Modifica stili di controllo

Per creare un controllo di modifica usando la funzione CreateWindow o CreateWindowEx, specificare la classe EDIT, le costanti di stile della finestra appropriate e una combinazione degli stili di controllo di modifica seguenti. Dopo aver creato il controllo, questi stili non possono essere modificati, tranne come indicato.

Esempio

LRESULT MsgCreate(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
{
    lparam;
    wparam;
    uMessage;

    // Create Edit control for typing to be sent to server
    if (NULL == (hOutWnd = CreateWindow("EDIT",
                           NULL,
                           WS_BORDER | WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_LEFT | 
                           ES_MULTILINE | ES_AUTOVSCROLL,
                           0,0,0,0,
                           hwnd,
                           (HMENU) ID_OUTBOX,
                           (HINSTANCE) GetWindowLongPtr(hwnd, GWLP_HINSTANCE),
                           NULL)))
        return FALSE;
    return TRUE;
}

Esempio di esempi classici di Windows in GitHub.

Costanti

Costante Descrizione
ES_AUTOHSCROLL
Scorre automaticamente il testo a destra per 10 caratteri quando l'utente digita un carattere alla fine della riga. Quando l'utente preme il tasto INVIO, il controllo scorre tutto il testo fino a posizione zero.
ES_AUTOVSCROLL
Scorre automaticamente il testo su una pagina quando l'utente preme il tasto INVIO sull'ultima riga.
ES_CENTER
Centra il testo in un controllo di modifica a riga singola o multilinea.
ES_LEFT
Allinea il testo con il margine sinistro.
ES_LOWERCASE
Converte tutti i caratteri in lettere minuscole quando vengono digitati nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.
ES_MULTILINE
Designa un controllo di modifica multilinea. Il valore predefinito è il controllo di modifica a riga singola.
Quando il controllo di modifica multilinea si trova in una finestra di dialogo, la risposta predefinita per premere il tasto INVIO consiste nell'attivare il pulsante predefinito. Per usare la chiave ENTER come ritorno a capo, usare lo stile ES_WANTRETURN .
Quando il controllo di modifica a più righe non è presente in una finestra di dialogo e lo stile di ES_AUTOVSCROLL viene specificato, il controllo di modifica mostra il maggior numero possibile di righe e scorre verticalmente quando l'utente preme il tasto INVIO. Se non si specifica ES_AUTOVSCROLL, il controllo di modifica mostra il maggior numero possibile di righe e i beeps se l'utente preme il tasto INVIO quando non è possibile visualizzare più righe.
Se si specifica lo stile ES_AUTOHSCROLL , il controllo di modifica a più righe scorre automaticamente orizzontalmente quando il cursore passa oltre il bordo destro del controllo. Per avviare una nuova riga, l'utente deve premere il tasto INVIO. Se non si specifica ES_AUTOHSCROLL, il controllo esegue automaticamente il wrapping delle parole all'inizio della riga successiva quando necessario. Viene avviata anche una nuova riga se l'utente preme il tasto INVIO. Le dimensioni della finestra determinano la posizione del Wordwrap. Se le dimensioni della finestra cambiano, la posizione wordwrapping cambia e il testo viene rieseguito.
I controlli di modifica multilinea possono avere barre di scorrimento. Un controllo di modifica con barre di scorrimento elabora i propri messaggi della barra di scorrimento. Si noti che modificare i controlli senza scorrere le barre di scorrimento come descritto nei paragrafi precedenti e elaborare eventuali messaggi di scorrimento inviati dalla finestra padre.
ES_NOHIDESEL
Nega il comportamento predefinito per un controllo di modifica. Il comportamento predefinito nasconde la selezione quando il controllo perde lo stato attivo dell'input e inverte la selezione quando il controllo riceve lo stato attivo di input. Se si specifica ES_NOHIDESEL, il testo selezionato viene invertito, anche se il controllo non ha lo stato attivo.
ES_NUMBER
Consente di immettere solo cifre nel controllo di modifica. Si noti che, anche con questo set, è ancora possibile incollare cifre non nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.
Per tradurre il testo immesso nel controllo di modifica in un valore intero, usare la funzione GetDlgItemInt . Per impostare il testo del controllo di modifica sulla rappresentazione stringa di un intero specificato, usare la funzione SetDlgItemInt .
ES_OEMCONVERT
Converte il testo immesso nel controllo di modifica. Il testo viene convertito dal Windows carattere impostato sul set di caratteri OEM e quindi tornare al set di caratteri Windows. Ciò garantisce la conversione corretta dei caratteri quando l'applicazione chiama la funzione CharToOem per convertire una stringa Windows nel controllo di modifica in caratteri OEM. Questo stile è più utile per i controlli di modifica che contengono nomi di file che verranno usati nei file system che non supportano Unicode.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.
ES_PASSWORD
Visualizza un asterisco (*) per ogni carattere digitato nel controllo di modifica. Questo stile è valido solo per i controlli di modifica a riga singola.
Per modificare i caratteri visualizzati o impostare o deselezionare questo stile, usare il messaggio di EM_SETPASSWORDCHAR .
[! Nota]
Per usare Comctl32.dll versione 6, specificarlo in un manifesto. Per altre informazioni sui manifesti, vedere Abilitazione degli stili di visualizzazione.

ES_READONLY
Impedisce all'utente di digitare o modificare il testo nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare il messaggio EM_SETREADONLY .
ES_RIGHT
Allinea il testo a destra in un controllo di modifica a riga singola o multilinea.
ES_UPPERCASE
Converte tutti i caratteri in maiuscolo quando vengono digitati nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.
ES_WANTRETURN
Specifica che una restituzione a capo viene inserita quando l'utente preme il tasto INVIO durante l'immissione del testo in un controllo di modifica a più righe in una finestra di dialogo. Se non si specifica questo stile, premere il tasto INVIO ha lo stesso effetto di premere il pulsante di push predefinito della finestra di dialogo. Questo stile non ha alcun effetto su un controllo di modifica a riga singola.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.

Requisiti

Requisito Valore
Intestazione
Winuser