Compartilhar via


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.

Usando controles de edição avançada

Demonstração de controles comuns do Windows (CppWindowsCommonControls)