Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La stringa di composizione è il testo corrente nella finestra di composizione. Si tratta del testo che l'IME converte in caratteri finali. Ogni stringa di composizione è costituita da una o più "clausole". Una clausola è la combinazione più piccola di caratteri che l'IME può convertire in un carattere finale. Per ottenere e impostare la stringa di composizione, l'applicazione chiama rispettivamente le funzioni ImmGetCompositionString e ImmSetCompositionString.
Quando l'utente immette testo nella finestra di composizione, l'IME tiene traccia dello stato della stringa di composizione. Questo stato include informazioni sugli attributi, informazioni sulle clausole, informazioni sulla digitazione e posizione del cursore. L'applicazione può recuperare lo stato della composizione usando la funzioneImmGetCompositionString.
Il rendering delle informazioni sugli attributi viene eseguito in una matrice di valori a 8 bit che specifica lo stato dei caratteri nella stringa di composizione. Tutti i caratteri di una clausola devono avere lo stesso attributo. La matrice include un valore per ogni byte nella stringa, incluso un byte ciascuno per il primo e il secondo byte di qualsiasi carattere a doppio byte nella stringa. Per ogni valore nella matrice, i bit da 0 a 3 possono essere una combinazione dei valori seguenti.
| Valore | Significato |
|---|---|
| ATTR_INPUT | Carattere immesso dall'utente. L'IME deve ancora convertire questo carattere. |
| ATTR_INPUT_ERROR | Carattere di errore che l'IME non può convertire. Ad esempio, l'IME non può mettere insieme alcune consonanti. |
| ATTR_TARGET_CONVERTED | Carattere selezionato dall'utente e quindi convertito dall'IME. |
| ATTR_CONVERTED | Carattere già convertito dall'IME. |
| ATTR_TARGET_NONCONVERTITO | Carattere da convertire. L'utente ha selezionato questo carattere, ma l'IME non lo ha ancora convertito. |
| ATTR_FIXEDCONVERTED | Caratteri che l'IME non convertirà più. |
Tutti gli altri valori sono riservati. In giapponese, qualsiasi carattere non convertito con l'attributo ATTR_INPUT è un carattere hiragana, katakana o alfanumerico. In coreano, questo attributo rappresenta un carattere Hangul che l'IME non ha ancora convertito. In cinese tradizionale e cinese semplificato, ogni IME può limitare il suo carattere all'interno di un intervallo.
Le informazioni sulla clausola incluse nello stato della stringa di composizione sono una matrice di valori a 32 bit che specifica le posizioni delle clausole nella stringa di composizione. La matrice include un valore per ogni clausola e un valore finale che specifica la lunghezza della stringa completa. Ogni valore nella matrice specifica l'offset, espresso in byte, dall'inizio della stringa alla clausola . Il primo valore è sempre 0 perché la prima clausola inizia sempre all'inizio della stringa. Ad esempio, se una stringa ha due clausole, le informazioni sulla clausola hanno tre valori: il primo valore è 0, il secondo valore è l'offset della seconda clausola e il terzo valore è la lunghezza della stringa. Per Unicode, la posizione di una clausola viene conteggiata in caratteri Unicode e la lunghezza di una stringa è la dimensione in caratteri Unicode.
Le informazioni di digitazione incluse nello stato della stringa di composizione sono una stringa di caratteri con terminazione Null che rappresenta i caratteri immessi dall'utente nella tastiera.
La posizione del cursore inclusa nello stato della stringa di composizione è un valore che indica la posizione del cursore rispetto ai caratteri nella stringa di composizione. Il valore rappresenta l'offset, in byte, dall'inizio della stringa. Se questo valore è 0, il cursore viene immediatamente prima del primo carattere nella stringa. Se il valore è uguale alla lunghezza della stringa, il cursore viene immediatamente dopo l'ultimo carattere. Se il valore è 1, il cursore non è presente. Per Unicode, sia la posizione che la lunghezza vengono misurate in caratteri Unicode.
L'applicazione può impostare la stringa di composizione o gli elementi dello stato della composizione usando la funzione ImmSetCompositionString. Per assicurarsi che la finestra di composizione aggiorni l'aspetto in base a queste modifiche, la funzione consente all'applicazione di inviare un messaggio di notifica alla finestra. Le applicazioni che impostano una combinazione di elementi di stato della composizione disabilitano in genere le notifiche per tutte le ma l'ultima chiamata a questa funzione in modo che venga generato un solo messaggio di notifica per la finestra di composizione.
Infine, il controllo di modifica supporta due messaggi per la modifica della gestione delle stringhe di composizione da parte dell'IME. Per altre informazioni, vedere EM_GETIMESTATUS e EM_SETIMESTATUS. Per altre informazioni sul controllo di modifica, vedere Modifica controllo.
Argomenti correlati