Escribir textos en UserControl

Kulber
14 de Agosto del 2004
Hola.

Tengo un UserControl en el que escribo un texto ya sea con "Print" o con la funcion API "Drawtext". Ademas, hago que el fondo del UserControl se vuelva transparente y muestre el texto. Pero el detalle es que, si el texto contiene mas de 397 caracteres, y muestro el texto completo en una sola linea (y por tanto, no se puede ver completo en el UserControl) se transparenta perfectamente. Pero si hago que se muestre el texto completo de la forma que dire a continuación, no se transparenta el fondo si el texto sobrepasa los 397 caracteres.

Os pongo el codigo a ver si os pasa lo mismo. (Lo pongo con "Print"):
----------------------------------------------------------------------------------------------------

Option Explicit

Private Sub UserControl_Initialize()
UserControl.Width = 4290
UserControl.Height = 1770
UserControl.AutoRedraw = True
UserControl.BackStyle = 0

'Si escribimos lineas de 50 caracteres hasta llegar a los 397 caracteres mostrando asi el texto completo se transparenta, pero si se añade un caracter mas no se transparenta:
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 123456789"
Print "123456789 123456789 123456789 123456789 1234567"

'Si escribimos mas de 397 caracteres (en esta ocasion son 400) en una sola linea no se muestra el texto completo, pero se transparenta:
'Print "123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789"

'Si escribimos 397 caracteres en una sola linea en el codigo pero añadiendo vbCrLf se transparenta, pero si se añade un caracter mas no se transparenta:
'Print "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 123456789" & vbCrLf & "123456789 123456789 123456789 123456789 1234567"
UserControl.Picture = UserControl.Image
UserControl.MaskPicture = UserControl.Picture
End Sub

---------------------------------------------------------------------------------------------------

He puesto las 3 combinaciones junta poniendo 2 como comentarios para no tener que poner 3 ejemplos diferentes, vosotros quitais y poneis la marca de comentario en las que os interese ver en cada momento.

No he probado mas combinaciones pero no creo que haga falta ya que hagas lo que hagas, solo transparenta si el texto no supera los 397 caracteres.
A ver si alguien sabe por que para esto. Por que yo ya me estoy volviendo loco.

Gracias y saludos.