Como usar a vinculação de fonte em controles de edição avançada
Microsoft Rich Edit 3.0 atribui um conjunto de caracteres para caracteres de texto sem formatação, dependendo de seu contexto. Alguns exemplos são:
- Caracteres gregos são atribuídos GREEK_CHARSET.
- Os símbolos Hangul são atribuídos HANGUL_CHARSET.
- Os caracteres chineses são atribuídos SHIFTJIS_CHARSET se caracteres kana forem encontrados nas proximidades, ou GB2312_CHARSET se nenhum kana for encontrado nas proximidades.
- Caracteres ANSI não neutros são atribuídos ANSI_CHARSET em qualquer caso.
Observação
O controle de edição avançada usa Unicode internamente, portanto, esse uso de conjuntos de caracteres difere do original usado nas especificações de fonte. Mas a estrutura CHARFORMAT tem um lugar bem definido para o conjunto de caracteres.
Caracteres neutros, como espaços em branco e dígitos, recebem um conjunto de caracteres, dependendo de seu contexto. Por exemplo, um espaço em branco cercado por caracteres do mesmo conjunto de caracteres obtém esse conjunto de caracteres. Neutros e dígitos usados para texto bidirecional são atribuídos conjuntos de caracteres de uma forma que é baseada no algoritmo bidirecional Unicode.
O que você precisa saber
Tecnologias
Pré-requisitos
- C/C++
- Programação da interface do usuário do Windows
Instruções
Usar vinculação de fonte em um controle de edição avançada
Depois que os conjuntos de caracteres são atribuídos, o Rich Edit verifica o texto ao redor do ponto de inserção para frente e para trás para encontrar as fontes mais próximas que foram usadas para os conjuntos de caracteres. Se nenhuma fonte for encontrada para um conjunto de caracteres, o Rich Edit usará a fonte escolhida pelo cliente para esse conjunto de caracteres. Se o cliente não tiver especificado uma fonte para o conjunto de caracteres, o Rich Edit usará a fonte padrão para esse conjunto de caracteres. Se o cliente quiser alguma outra fonte, o cliente sempre pode alterá-la, mas essa abordagem funcionará na maioria das vezes. As opções de fonte padrão atuais são baseadas na tabela a seguir. Observe que as fontes padrão são definidas por processo e há listas separadas para uso da interface do usuário e para uso fora da interface do usuário.
Idioma | Nome da fonte da interface do usuário | Tamanho da fonte da interface do usuário | nome da fonte não-UI | tamanho de fonte não-UI |
---|---|---|---|---|
Ocidental, CE, ME, Vietnamita | Tahoma | 8 | Arial | 10 |
Japonês | MS UI Gótico | 9 | MS P Gótico | 10 |
Coreano | Gulim | 9 | Gulim | 9 |
Chinês simplificado | Simsun | 9 | SimSun | 10 |
Chinês tradicional | PMingLiU | 9 | PMingLiU | 9 |
Tailandês | MS Sans Serif | 8 | Tahoma | 14 |
Símbolos | Wingdings | 8 | Wingdings | 10 |
Devanagari | Mangal | 8 | Mangal | 10 |
Tâmil | Latha | 8 | Latha | 10 |
Georgiano, Armênio | Arial Unicode | 8 | Arial Unicode | 10 |
Portanto, na tabela de vinculação de fonte padrão (as entradas têm um conjunto de caracteres, nome da fonte e tamanho), o Rich Edit permite que ANSI_CHARSET corresponda a vários conjuntos de caracteres, enquanto o conjunto de caracteres apropriado corresponde a outras fontes individualmente. Mais precisamente, a edição avançada usa a opção ANSI_CHARSET sempre que nenhuma outra alternativa é encontrada. Você poderá especificar uma granularidade mais fina do que esta; por exemplo, atribua um ARABIC_CHARSET específico para execuções em árabe, uma fonte grega específica para execuções em grego e assim por diante. Essa granularidade mais fina também será usada se uma fonte com o carimbo do conjunto de caracteres desejado for encontrada em algum lugar no documento antes da área que está sendo vinculada à fonte.
Observe que o Rich Edit atualmente não manipula um glifo ausente em uma fonte que afirma oferecer suporte a um conjunto de caracteres, mas está incompleta. No momento da exibição em um script complexo, o Rich Edit acaba sabendo que esse glifo está faltando, mas não faz com que o armazenamento de backup use uma nova fonte. Normalmente, a vinculação de fonte subjacente do sistema operacional fará isso.
Comentários
Rich Edit 4.1: Para definir a fonte padrão para um script, chame EM_SETCHARFORMAT com CHARFORMAT2, especificando valores para os membros yHeight, bCharSet, bPitchAndFamily, szFaceName e lcid. Além disso, para obter a fonte padrão para uma página de código específica, chame EM_GETCHARFORMAT com CHARFORMAT2, especificando valores para os membros bCharSet e lcid.
Tópicos relacionados