Compartilhar via


Classe CMFCToolBarFontComboBox

Um botão da barra de ferramentas que contém um controle de caixa de combinação que permite que o usuário selecione uma fonte em uma lista de fontes do sistema.

Sintaxe

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Membros

Construtores Protegidos

Nome Descrição
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox Constrói um objeto CMFCToolBarFontComboBox.

Métodos públicos

Nome Descrição
CMFCToolBarFontComboBox::GetFontDesc Retorna um ponteiro para o objeto CMFCFontInfo para um índice especificado na caixa de combinação.
CMFCToolBarFontComboBox::SetFont Seleciona uma fonte na caixa de combinação de fontes de acordo com o nome ou o prefixo da fonte e o conjunto de caracteres da fonte.

Membros de dados

CMFCToolBarFontComboBox::m_nFontHeight
A altura dos caracteres na caixa de combinação de fontes.

Comentários

Para adicionar um botão de caixa de combinação de fontes a uma barra de ferramentas, siga estas etapas:

  1. Reserve uma ID do recurso fictícia para o botão no recurso da barra de ferramentas pai.

  2. Construir um objeto CMFCToolBarFontComboBox.

  3. Substitua o botão original no manipulador de mensagens que processa a mensagem AFX_WM_RESETTOOLBAR pelo novo botão de caixa de combinação usando CMFCToolBar::ReplaceButton.

  4. Sincronize a fonte selecionada na caixa de combinação com a fonte no documento usando o método CMFCToolBarFontComboBox::SetFont.

Para sincronizar a fonte do documento com a fonte selecionada na caixa de combinação, use o método CMFCToolBarFontComboBox::GetFontDesc para recuperar os atributos da fonte selecionada e use esses atributos para criar um objeto da Classe CFont.

O botão caixa de combinação de fontes chama a função EnumFontFamiliesEx do Win32 para determinar as fontes de tela e impressora disponíveis para o sistema.

Hierarquia de herança

CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Requisitos

Cabeçalho: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

Constrói um objeto CMFCToolBarFontComboBox.

public:
CMFCToolBarFontComboBox(
    UINT uiID,
    int iImage,
    int nFontType = DEVICE_FONTTYPE | RASTER_FONTTYPE | TRUETYPE_FONTTYPE,
    BYTE nCharSet = DEFAULT_CHARSET,
    DWORD dwStyle = CBS_DROPDOWN,
    int iWidth = 0,
    BYTE nPitchAndFamily = DEFAULT_PITCH);

protected:
CMFCToolBarFontComboBox(
    CObList* pLstFontsExternal,
    int nFontType,
    BYTE nCharSet,
    BYTE nPitchAndFamily);

CMFCToolBarFontComboBox();

Parâmetros

uiID
[in] A ID de comando da caixa de combinação.

iImage
[in] O índice baseado em zero de uma imagem da barra de ferramentas. A imagem está localizada no objeto Classe CMFCToolBarImages que a classe CMFCToolBar mantém.

nFontType
[in] Os tipos de fonte que a caixa de combinação contém. Esse parâmetro pode ser uma combinação (booliano OR) dos valores a seguir:

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in] Se definida como DEFAULT_CHARSET, a caixa de combinação contém todas as fontes nomeadas exclusivamente em todos os conjuntos de caracteres. (Se houver duas fontes com o mesmo nome, a caixa de combinação conterá uma delas). Se definidas como um valor de conjunto de caracteres válido, a caixa de combinação conterá apenas fontes no conjunto de caracteres especificado. Consulte LOGFONT para obter uma listagem de possíveis conjuntos de caracteres.

dwStyle
[in] O estilo da caixa de combinação. (consulte Estilos de caixa de combinação)

iWidth
[in] A largura, em pixels, do controle de edição.

nPitchAndFamily
[in] Se definida como DEFAULT_PITCH, a caixa de combinação contém fontes, independentemente da densidade. Se definida como FIXED_PITCH ou VARIABLE_PITCH, a caixa de combinação contém apenas fontes com esse tipo de densidade. Atualmente, não há suporte para filtragem com base na família de fontes.

pLstFontsExternal
[out] Ponteiro para um objeto classe CObList que armazena as fontes disponíveis.

Comentários

Normalmente, os objetos CMFCToolBarFontComboBox armazenam a lista de fontes disponíveis em um único objeto CObList compartilhado. Se você usar a segunda sobrecarga do construtor e fornecer um ponteiro válido para pLstFontsExternal, o objeto CMFCToolBarFontComboBox preencherá o CObList para o qual pLstFontsExternal aponta para as fontes disponíveis.

Exemplo

O exemplo a seguir demonstra como construir um objeto CMFCToolBarFontComboBox. Este snippet de código faz parte do exemplo do Word Pad.

CMFCToolBarFontComboBox *CFormatBar::CreateFontComboButton()
{
   // CSize m_szBaseUnits
   return new CMFCToolBarFontComboBox(IDC_FONTNAME,
                                      GetCmdMgr()->GetCmdImage(IDC_FONTNAME, FALSE),
                                      TRUETYPE_FONTTYPE | DEVICE_FONTTYPE,
                                      DEFAULT_CHARSET,
                                      WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN |
                                          CBS_AUTOHSCROLL | CBS_HASSTRINGS | CBS_OWNERDRAWFIXED,
                                      (3 * LF_FACESIZE * m_szBaseUnits.cx) / 2);
}

CMFCToolBarFontComboBox::GetFontDesc

Retorna um ponteiro para o objeto CMFCFontInfo para um índice especificado na caixa de combinação.

const CMFCFontInfo* GetFontDesc(int iIndex=-1) const;

Parâmetros

iIndex
[in] Especifica o índice baseado em zero de um item de caixa de combinação.

Valor de retorno

Um ponteiro para um objeto CMFCFontInfo. Se iIndex não especificar um índice de item válido, o valor retornado será NULL.

CMFCToolBarFontComboBox::m_nFontHeight

Especifica a altura, em pixels, dos caracteres na caixa de combinação de fontes se a caixa de combinação tiver o estilo de desenho do proprietário.

static int m_nFontHeight

Comentários

Se a variável m_nFontHeight for 0, a altura será calculada automaticamente de acordo com a fonte padrão da caixa de combinação. A altura inclui tanto o ascendente de caracteres acima da linha de base quanto o descendente de caracteres abaixo da linha de base.

CMFCToolBarFontComboBox::SetFont

Seleciona a fonte na caixa de combinação de fontes de acordo com o nome da fonte e o conjunto de caracteres especificados nos parâmetros.

BOOL SetFont(
    LPCTSTR lpszName,
    BYTE nCharSet=DEFAULT_CHARSET,
    BOOL bExact=FALSE);

Parâmetros

lpszName
[in] Especifica o nome ou prefixo da fonte.

nCharSet
[in] Especifica o conjunto de caracteres.

bExact
[in] Especifica se lpszName contém o nome ou o prefixo da fonte.

Valor de retorno

Diferente de zero se a fonte foi selecionada com êxito; caso contrário, 0.

Comentários

Se bExact for TRUE, esse método selecionará uma fonte que corresponda exatamente ao nome especificado como lpszName. Se bExact for FALSE, o método selecionará uma fonte que comece com o texto especificado como lpszName e que use o conjunto de caracteres especificado como nCharSet. Se nCharSet estiver definido como DEFAULT_CHARSET, o conjunto de caracteres será ignorado e somente lpszName será usado para selecionar uma fonte.

Confira também

Gráfico da hierarquia
Classes
Classe CMFCToolBar
Classe CMFCToolBarButton
Classe CMFCToolBarComboBoxButton
Classe CMFCFontInfo
CMFCToolBar::ReplaceButton
Instruções passo a passo: colocando controles em barras de ferramentas