Condividi tramite


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, ad eccezione di quanto 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 di 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 alla posizione zero.
ES_AUTOVSCROLL
Scorre automaticamente il testo verso l'alto di 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 su più righe.
ES_LEFT
Allinea il testo al margine sinistro.
ES_LOWERCASE
Converte tutti i caratteri in lettere minuscole durante la digitazione nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.
ES_MULTILINE
Definisce un controllo di modifica su più righe. Il valore predefinito è il controllo di modifica a riga singola.
Quando il controllo di modifica su più righe si trova in una finestra di dialogo, la risposta predefinita alla pressione del tasto INVIO consiste nell'attivare il pulsante predefinito. Per utilizzare il tasto INVIO come ritorno a capo, utilizzare lo stile ES_WANTRETURN .
Quando il controllo di modifica su più righe non si trova in una finestra di dialogo e viene specificato lo stile ES_AUTOVSCROLL , il controllo di modifica visualizza 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 visualizza il maggior numero possibile di righe e fa api se l'utente preme il tasto INVIO quando non è possibile visualizzare più righe.
Se si specifica lo stile di ES_AUTOHSCROLL , il controllo di modifica su più righe scorre automaticamente orizzontalmente quando il cursore supera il bordo destro del controllo. Per avviare una nuova riga, l'utente deve premere INVIO. Se non si specifica ES_AUTOHSCROLL, il controllo esegue automaticamente il wrapping delle parole all'inizio della riga successiva, se necessario. Viene avviata anche una nuova riga se l'utente preme INVIO. La dimensione della finestra determina la posizione del wordwrap. Se le dimensioni della finestra cambiano, la posizione di wordwrapping cambia e il testo viene rieseguito.
I controlli di modifica su più righe 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 barre di scorrimento scorrere come descritto nei paragrafi precedenti ed 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 per l'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 le cifre nel controllo di modifica. Si noti che, anche con questo set, è comunque 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 di stringa di un numero intero specificato, utilizzare la funzione SetDlgItemInt .
ES_OEMCONVERT
Converte il testo immesso nel controllo di modifica. Il testo viene convertito dal set di caratteri di Windows al set di caratteri OEM e quindi torna al set di caratteri di Windows. Ciò garantisce la conversione corretta dei caratteri quando l'applicazione chiama la funzione CharToOem per convertire una stringa di 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, utilizzare 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 testo nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare il messaggio EM_SETREADONLY .
ES_RIGHT
Allinea a destra il testo in un controllo di modifica a riga singola o su più righe.
ES_UPPERCASE
Converte tutti i caratteri in maiuscolo durante la digitazione nel controllo di modifica.
Per modificare questo stile dopo la creazione del controllo, usare SetWindowLong.
ES_WANTRETURN
Specifica che un ritorno a capo deve essere inserito quando l'utente preme il tasto INVIO durante l'immissione di testo in un controllo di modifica su più righe in una finestra di dialogo. Se non si specifica questo stile, premere INVIO equivale a premere il pulsante di scelta rapida 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