Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: TOLO68 en Enero 18, 2017, 06:39:16 pm
-
Buenas, necesito de vuestra ayuda.
Tengo que imprimir un texto en un Hdc
He buscado algunas funciones por internet pero no funcionan o me hacen crash cada 2 por 3 en VB, no se si es por mal uso (lo unico que no me gusta del GDI+)
La que tenia creo que la borre por tener tanto archivo en el computador.
Necesito algo sencillo que tenga
Font, Size, X, Y, Color, Align,
Si se os ocurre alguna mas que pueda ser util tambien
ya he hecho un par para dibujar graficos pero con la de texto me vuelvo loco.
Muchas gracias a todos
-
Se me olvidaba, es para VB6
-
Hola mira este modulo lo hice hace un buen tiempo atras ahi pode encontrar todas las enumeraciones y apis para lo que necesites para dibujar un texto comun con GDI+
http://leandroascierto.com/blog/clsdrawstring-cls-modulo-para-dibujar-texto-utilizando-gdi/
seguramente al módulo le falte obtener el tamaño del texto por si es que queres saber que ancho o alto va a ocupar. si mal no recuerdo con algunas fuentes puede haber algún tipo de problema o no recuerdo bien que era.
cualquier duda preguntas.
-
un detalle, cambia estas dos apis
Private Declare Function GdipCreateFont Lib "gdiplus" (ByVal fontFamily As Long, ByVal emSize As Single, ByVal Style As GDIPLUS_FONTSTYLE, ByVal UNIT As Long, createdfont As Long) As Long
Private Declare Function GdipDrawString Lib "gdiplus" (ByVal graphics As Long, ByVal str As Long, ByVal Length As Long, ByVal thefont As Long, layoutRect As RECTF, ByVal StringFormat As Long, ByVal brush As Long) As Long
y modifica estas llamadas para utilizar StrPtr en vez de StrConv, es mas rápido y se puede utilizar unicode
GdipCreateFontFamilyFromName StrPtr(m_Font.name), 0, lFontFamily
DrawString = GdipDrawString(hGraphic, StrPtr(Text), -1, lCurrentFont, RctText, lFormat, lBrush) = 0