[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