Compartir a través de


Clase CMFCToolBarFontComboBox

Botón de la barra de herramientas que contiene un control de cuadro combinado que permite al usuario seleccionar una fuente de una lista de fuentes del sistema.

Sintaxis

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Miembros

Constructores protegidos

Nombre Descripción
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox Construye un objeto CMFCToolBarFontComboBox.

Métodos públicos

Nombre Descripción
CMFCToolBarFontComboBox::GetFontDesc Devuelve un puntero al objeto CMFCFontInfo para un índice especificado en el cuadro combinado.
CMFCToolBarFontComboBox::SetFont Selecciona una fuente en el cuadro combinado de fuentes en función del nombre de la fuente o el prefijo y el juego de caracteres de la fuente.

Miembros de datos

CMFCToolBarFontComboBox::m_nFontHeight
El alto de los caracteres del cuadro combinado de fuentes.

Comentarios

Para agregar un botón del cuadro combinado de fuentes a una barra de herramientas, siga estos pasos:

  1. Reserve un id. de recurso ficticio para el botón en el recurso primario de la barra de herramientas.

  2. Cree un objeto CMFCToolBarFontComboBox.

  3. En el controlador de mensajes que procesa el mensaje AFX_WM_RESETTOOLBAR, reemplace el botón original por el botón de cuadro combinado nuevo mediante CMFCToolBar::ReplaceButton.

  4. Sincronice la fuente seleccionada en el cuadro combinado con la fuente en el documento mediante el método CMFCToolBarFontComboBox::SetFont.

Para sincronizar la fuente del documento con la fuente seleccionada en el cuadro combinado, use el método CMFCToolBarFontComboBox::GetFontDesc para recuperar los atributos de la fuente seleccionada y use esos atributos para crear un objeto CFont Class.

El botón del cuadro combinado de fuentes llama a la función EnumFontFamiliesEx de Win32 para determinar las fuentes de pantalla e impresora disponibles para el sistema.

Jerarquía de herencia

CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Requisitos

Encabezado: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

Construye un 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] Identificador de comando del cuadro combinado.

iImage
[in] Índice de base cero de una imagen de la barra de herramientas. La imagen se encuentra en el objeto CMFCToolBarImages Class que la clase CMFCToolBar Class mantiene.

nFontType
[in] Tipos de fuentes que el cuadro combinado contiene. Este parámetro puede ser una combinación (OR booleano) de los valores siguientes:

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in] Si se establece en DEFAULT_CHARSET, el cuadro combinado contiene todas las fuentes con nombre único en todos los juegos de caracteres. (Si hay dos fuentes con el mismo nombre, el cuadro combinado contiene una de ellas). Si se establece en un valor de juego de caracteres válido, el cuadro combinado solo contiene fuentes del juego de caracteres especificado. Consulte LOGFONT para una lista de juegos de caracteres posibles.

dwStyle
[in] Estilo del cuadro combinado. (Consulte Estilos de cuadro combinado).

iWidth
[in] El ancho del control de edición, en píxeles.

nPitchAndFamily
[in] Si se establece en DEFAULT_PITCH, el cuadro combinado contiene fuentes independientemente del paso. Si se establece en FIXED_PITCH o VARIABLE_PITCH, el cuadro combinado solo contiene fuentes con ese tipo de paso. Actualmente, no se admite el filtrado en función de la familia de fuentes.

pLstFontsExternal
[out] Puntero a un objeto de la clase CObList que almacena las fuentes disponibles.

Comentarios

Por lo general, los objetos CMFCToolBarFontComboBox almacenan la lista de fuentes disponibles en un objeto CObList compartido único. Si usa la segunda sobrecarga del constructor y proporciona un puntero válido a pLstFontsExternal, ese objeto CMFCToolBarFontComboBox rellenará en su lugar el CObList al que apunta pLstFontsExternal con las fuentes disponibles.

Ejemplo

En el ejemplo siguiente, se muestra cómo construir un objeto CMFCToolBarFontComboBox. Este fragmento de código forma parte del ejemplo de WordPad.

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

Devuelve un puntero al objeto CMFCFontInfo para un índice especificado en el cuadro combinado.

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

Parámetros

iIndex
[in] Especifica el índice de base cero de un elemento de cuadro combinado.

Valor devuelto

Puntero a un objeto CMFCFontInfo . Si iIndex no especifica un índice de elemento válido, el valor devuelto es NULL.

CMFCToolBarFontComboBox::m_nFontHeight

Especifica el alto, en píxeles, de los caracteres del cuadro combinado de fuentes si el cuadro combinado tiene el estilo dibujado por el propietario.

static int m_nFontHeight

Comentarios

Si la variable m_nFontHeight es 0, el alto se calcula automáticamente en función de la fuente predeterminada del cuadro combinado. El alto incluye el ascenso de los caracteres por encima de la línea de base y el descenso de los caracteres por debajo de la misma.

CMFCToolBarFontComboBox::SetFont

Selecciona la fuente en el cuadro combinado de fuentes en función del nombre de la fuente y el juego de caracteres especificados en los parámetros.

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

Parámetros

lpszName
[in] Especifica el prefijo o el nombre de la fuente.

nCharSet
[in] Especifica el juego de caracteres.

bExact
[in] Especifica si lpszName contiene el nombre o el prefijo de la fuente.

Valor devuelto

Distinto de cero si la fuente se seleccionó correctamente; de lo contrario, 0.

Comentarios

Si bExact es TRUE, este método selecciona una fuente que coincide exactamente con el nombre que especificó como lpszName. Si bExact es FALSE, este método selecciona una fuente que comienza con el texto especificado como lpszName y que usa el juego de caracteres especificado como nCharSet. Si nCharSet se establece en DEFAULT_CHARSET, se omitirá el juego de caracteres y solo se usará lpszName para seleccionar una fuente.

Consulte también

Gráfico de jerarquías
Clases
CMFCToolBar (clase)
CMFCToolBarButton (clase)
CMFCToolBarComboBoxButton (clase)
CMFCFontInfo (clase)
CMFCToolBar::ReplaceButton
Tutorial: Poner controles en las barras de herramientas