Función EnumFontFamiliesExA (wingdi.h)
La función
Sintaxis
int EnumFontFamiliesExA(
[in] HDC hdc,
[in] LPLOGFONTA lpLogfont,
[in] FONTENUMPROCA lpProc,
[in] LPARAM lParam,
DWORD dwFlags
);
Parámetros
[in] hdc
Identificador del contexto del dispositivo desde el que se van a enumerar las fuentes.
[in] lpLogfont
Puntero a una estructura de LOGFONT que contiene información sobre las fuentes que se van a enumerar. La función examina los siguientes miembros.
Miembro | Descripción |
---|---|
lfCharSet | Si se establece en DEFAULT_CHARSET, la función enumera todas las fuentes con nombre único en todos los conjuntos de caracteres. (Si hay dos fuentes con el mismo nombre, solo se enumera una). Si se establece en un valor de juego de caracteres válido, la función enumera solo las fuentes del juego de caracteres especificado. |
lfFaceName | Si se establece en una cadena vacía, la función enumera una fuente en cada nombre de letra disponible. Si se establece en un nombre de tipo de letra válido, la función enumera todas las fuentes con el nombre especificado. |
lfPitchAndFamily | Debe establecerse en cero para todas las versiones de idioma del sistema operativo. |
[in] lpProc
Puntero a la función de devolución de llamada definida por la aplicación. Para obtener más información, consulte la función
[in] lParam
Valor definido por la aplicación. La función pasa este valor a la función de devolución de llamada junto con la información de fuente.
dwFlags
Este parámetro no se usa y debe ser cero.
Valor devuelto
El valor devuelto es el último valor devuelto por la función de devolución de llamada. Este valor depende de las familias de fuentes disponibles para el dispositivo especificado.
Observaciones
La función EnumFontFamiliesEx no usa nombres de tipo etiquetados para identificar conjuntos de caracteres. En su lugar, siempre pasa el nombre de letra correcto y un valor de juego de caracteres independiente a la función de devolución de llamada. La función enumera las fuentes basadas en los valores del lfCharSet y miembros lfFaceName en la estructura LOGFONT.
Al igual que con EnumFontFamilies, EnumFontFamiliesEx enumera todos los estilos de fuente. No todos los estilos de una fuente cubren los mismos juegos de caracteres. Por ejemplo, Fontorama Bold podría contener caracteres ANSI, griegos y cirílicos, pero Fontorama Italic podría contener solo caracteres ANSI. Por este motivo, es mejor no suponer que una fuente especificada cubre un juego de caracteres específico, incluso si es el juego de caracteres ANSI. En la tabla siguiente se muestran los resultados de varias combinaciones de valores para lfCharSet y lfFaceName.
Valores | Significado |
---|---|
lfCharSet = DEFAULT_CHARSET lfFaceName = '\0' |
Enumera todas las fuentes con nombre único dentro de todos los juegos de caracteres. Si hay dos fuentes con el mismo nombre, solo se enumera una. |
lfCharSet = DEFAULT_CHARSET lfFaceName = una fuente específica |
Enumera todos los juegos de caracteres y estilos en una fuente específica. |
lfCharSet =un juego de caracteres específico lfFaceName = '\0' |
Enumera todos los estilos de todas las fuentes del juego de caracteres específico. |
lfCharSet =un juego de caracteres específico lfFaceName = una fuente específica |
Enumera todos los estilos de una fuente en un juego de caracteres específico. |
En el ejemplo de código siguiente se muestra cómo se usan estos valores.
// To enumerate all styles and charsets of all fonts:
lf.lfFaceName[0] = '\0';
lf.lfCharSet = DEFAULT_CHARSET;
HRESULT hr;
// To enumerate all styles and character sets of the Arial font:
hr = StringCchCopy( (LPSTR)lf.lfFaceName, LF_FACESIZE, "Arial" );
if (FAILED(hr))
{
// TODO: write error handler
}
lf.lfCharSet = DEFAULT_CHARSET;
// To enumerate all styles of all fonts for the ANSI character set
lf.lfFaceName[0] = '\0';
lf.lfCharSet = ANSI_CHARSET;
// To enumerate all styles of Arial font that cover the ANSI charset
hr = StringCchCopy( (LPSTR)lf.lfFaceName, LF_FACESIZE, "Arial" );
if (FAILED(hr))
{
// TODO: write error handler
}
lf.lfCharSet = ANSI_CHARSET;
Las funciones de devolución de llamada para EnumFontFamilies y EnumFontFamiliesEx son muy similares. La principal diferencia es que la estructura ENUMLOGFONTEX incluye un campo de script.
Tenga en cuenta que, en función de los valores de lfCharSet y lfFaceName, EnumFontFamiliesEx enumerará la misma fuente tantas veces como hay conjuntos de caracteres distintos en la fuente. Esto puede crear una amplia lista de fuentes que pueden ser pesadas para un usuario. Por ejemplo, la fuente Century Schoolbook puede aparecer para los juegos de caracteres bálticos, occidentales, griegos, turcos y cirílicos. Para evitar esto, una aplicación debe filtrar la lista de fuentes.
Las fuentes de muchos idiomas asiáticos orientales tienen dos nombres de tipo: un nombre en inglés y un nombre localizado. EnumFonts, EnumFontFamiliesy EnumFontFamiliesEx devuelve el nombre del tipo de letra en inglés si la configuración regional del sistema no coincide con el idioma de la fuente.
Cuando el modo gráfico del contexto del dispositivo se establece en GM_ADVANCED mediante la función SetGraphicsMode y la marca DEVICE_FONTTYPE se pasa al parámetro FontType, esta función devuelve una lista de fuentes de tipo 1 y OpenType en el sistema. Cuando el modo gráfico no está establecido en GM_ADVANCED, esta función devuelve una lista de fuentes de tipo 1, OpenType y TrueType en el sistema.
Nota
El encabezado wingdi.h define EnumFontFamiliesEx como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
wingdi.h (incluya Windows.h) |
biblioteca de |
Gdi32.lib |
DLL de |
Gdi32.dll |
Consulte también
funciones de fuente y texto de
de información general de fuentes y texto de