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:
Reserve uma ID do recurso fictícia para o botão no recurso da barra de ferramentas pai.
Construir um objeto
CMFCToolBarFontComboBox
.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.
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
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