Come usare l'associazione di tipi di carattere nei controlli Rich Edit

Microsoft Rich Edit 3.0 assegna un set di caratteri a caratteri non crittografati a seconda del contesto. Alcuni esempi sono:

  • Ai caratteri greci viene assegnato gr edizione EnterpriseK_CHARedizione Standard T.
  • I simboli Hangul vengono assegnati HANGUL_CHARedizione Standard T.
  • Ai caratteri cinesi viene assegnato SHIFTJIS_CHARedizione Standard T se vengono trovati caratteri kana nelle vicinanze o GB2312_CHARedizione Standard T se non viene trovato alcun kana nelle vicinanze.
  • Ai caratteri ANSI non neutrali viene assegnato ANSI_CHARedizione Standard T in qualsiasi caso.

Nota

Il controllo rich edit utilizza internamente Unicode, pertanto questo uso di set di caratteri differisce da quello originale usato nelle specifiche dei tipi di carattere. Tuttavia, la struttura CHARFORMAT ha una posizione ben definita per il set di caratteri.

 

Ai caratteri neutri, ad esempio spazi vuoti e cifre, viene assegnato un set di caratteri a seconda del contesto. Ad esempio, uno spazio vuoto racchiuso tra caratteri dello stesso set di caratteri ottiene il set di caratteri. Le cifre e le neutre usate per il testo bidirezionale vengono assegnati set di caratteri in modo basato sull'algoritmo bidirezionale Unicode.

Informazioni importanti

Tecnologie

Prerequisiti

  • C/C++
  • Programmazione dell'interfaccia utente di Windows

Istruzioni

Usare l'associazione di tipi di carattere in un controllo Rich Edit

Dopo l'assegnazione dei set di caratteri, Rich Edit analizza il testo intorno al punto di inserimento in avanti e indietro per trovare i tipi di carattere più vicini utilizzati per i set di caratteri. Se non viene trovato alcun tipo di carattere per un set di caratteri, Rich Edit utilizza il tipo di carattere scelto dal client per tale set di caratteri. Se il client non ha specificato un tipo di carattere per il set di caratteri, Rich Edit utilizza il tipo di carattere predefinito per tale set di caratteri. Se il client vuole un altro tipo di carattere, il client può sempre modificarlo, ma questo approccio funzionerà la maggior parte del tempo. Le scelte correnti dei tipi di carattere predefinite sono basate sulla tabella seguente. Si noti che i tipi di carattere predefiniti sono impostati per processo e sono presenti elenchi separati per l'utilizzo dell'interfaccia utente e per l'utilizzo non dell'interfaccia utente.

Lingua Nome del tipo di carattere dell'interfaccia utente Dimensioni del carattere dell'interfaccia utente nome del tipo di carattere non dell'interfaccia utente dimensioni del carattere non dell'interfaccia utente
Western, CE, ME, Vietnamita Tahoma 8 Arial 10
Giapponese MS UI Gothic 9 MS P Gothic 10
Coreano Gulim 9 Gulim 9
Cinese semplificato Simsun 9 SimSun 10
Cinese tradizionale PMingLiU 9 PMingLiU 9
Thai MS Sans Serif 8 Tahoma 14
Simboli Wingdings 8 Wingdings 10
Devanagari Mangal 8 Mangal 10
Tamil Lucian 8 Lucian 10
Georgiano, Armeno Arial Unicode 8 Arial Unicode 10

 

Pertanto, nella tabella di associazione dei caratteri predefinita (le voci hanno un set di caratteri, il nome del carattere e le dimensioni), Rich Edit consente ANSI_CHARedizione Standard T di corrispondere a diversi set di caratteri, mentre il set di caratteri appropriato corrisponde ad altri tipi di carattere su base uno-a-uno. Più precisamente, la modifica avanzata usa la scelta ANSI_CHARedizione Standard T ogni volta che non viene trovata un'altra alternativa. Sarà possibile specificare una granularità più fine di questa; Ad esempio, assegnare un ARABIC_CHARedizione Standard T specifico per le esecuzioni arabe, un tipo di carattere greco specifico per le esecuzioni greche e così via. Questa granularità più fine verrà utilizzata anche se un tipo di carattere con lo stamp del set di caratteri desiderato viene trovato in un punto del documento prima dell'area associata al tipo di carattere.

Si noti che La modifica avanzata non gestisce attualmente un glifo mancante in un tipo di carattere che dichiara di supportare un set di caratteri ma è incompleto. In fase di visualizzazione in uno script complesso, Rich Edit finisce per sapere che tale glifo è mancante, ma non fa sì che l'archivio di backup usi un nuovo tipo di carattere. In genere, il collegamento del tipo di carattere sottostante del sistema operativo eseguirà questa operazione.

Osservazioni:

Rich Edit 4.1: per impostare il tipo di carattere predefinito per uno script, chiamare EM_edizione Standard TCHARFORMAT con CHARFORMAT2, specificando i valori per i membri yHeight, bCharSet, bPitchAndFamily, szFaceName e lcid. Inoltre, per ottenere il tipo di carattere predefinito per una tabella codici specifica, chiamare EM_GETCHARFORMAT con CHARFORMAT2, specificando i valori per i membri bCharSet e lcid.

Uso di controlli Rich Edit

Demo dei controlli comuni di Windows (CppWindowsCommonControls)