[C con Clase] Fonts
Steven Davidson
srd4121 en njit.edu
Mie Mayo 21 21:47:57 CEST 2008
Hola Diego,
Diego wrote:
> Quisiera saber como puedo mostrar texto en una ventana usando c++ y
> que el texto tengo un font como times new roman,
> Actualmente estoy usando la funcion DrawText, pero no se como
> seleccionar un font de los que ya estan disponibles en el sistema.
Las funciones que escriben texto en el área del cliente de una ventana
usan la fuente y colores seleccionados en su DC. Tienes que usar
'SelectObject()' para establecer otra fuente. Para elegir una fuente del
sistema, usa 'CreateFont()' o 'CreateFontIndirect()' o incluso puedes
buscar varias fuentes de un tipo específico usando
'EnumFontFamiliesEx()'. Por ejemplo,
int CALLBACK func( const LOGFONT *lplf, const TEXTMETRIC *lptm,
DWORD dwTipoFuente, LPARAM lParam )
{
HFONT *pFuente = (HFONT *)lParam;
*pFuente = CreateFontIndirect( lplf );
return 0;
}
...
HDC hdc;
LOGFONT lf = { 0 };
HFONT hfuente;
lf.lfCharset = DEFAULT_CHARSET;
lstrcpy( lf.lfFaceName, TEXT("Times New Roman") );
EnumFontFamiliesEx( hdc, &lf, func, (LPARAM)&hfuente, 0 );
También puedes usar el cuadro de diálogo común para que el usuario
escoja la fuente que quiere. La función en <commdlg.h> es 'ChooseFont()'
y definida en "comdlg32.lib" (o "libcomdlg32.a").
Espero que esto te ayude.
Steven
Más información sobre la lista de distribución Cconclase