Autor Tema: Dibujar Texto con GdiPlus  (Leído 946 veces)

0 Usuarios y 1 Visitante están viendo este tema.

TOLO68

  • Kilobyte
  • **
  • Mensajes: 60
  • Reputación: +2/-0
    • Ver Perfil
Dibujar Texto con GdiPlus
« 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




TOLO68

  • Kilobyte
  • **
  • Mensajes: 60
  • Reputación: +2/-0
    • Ver Perfil
Re:Dibujar Texto con GdiPlus
« Respuesta #1 en: Enero 18, 2017, 06:40:04 pm »
Se me olvidaba, es para VB6

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +150/-8
    • Ver Perfil
Re:Dibujar Texto con GdiPlus
« Respuesta #2 en: Enero 18, 2017, 09:38:31 pm »
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.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +150/-8
    • Ver Perfil
Re:Dibujar Texto con GdiPlus
« Respuesta #3 en: Enero 18, 2017, 09:47:55 pm »
un detalle, cambia estas dos apis
Código: [Seleccionar]
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
Código: [Seleccionar]
GdipCreateFontFamilyFromName StrPtr(m_Font.name), 0, lFontFamily
Código: [Seleccionar]
DrawString = GdipDrawString(hGraphic, StrPtr(Text), -1, lCurrentFont, RctText, lFormat, lBrush) = 0