Visual Basic - ayuda

Life is soft - evento anual de software empresarial
 
Vista:

ayuda

Publicado por marcelo (46 intervenciones) el 14/03/2005 14:56:11
Amigos,tengo un serio problema para poder terminar un trabajo que estoy realizando, y por ello tanta incistencia en su ayuda.
Para imprimir utilizo la propiedad PaintPicture del objeto Printer, lo que deseo imprimir es todo lo que se ve en un PictureBox. En este he dibujado una Plantilla a base de Shapes y cuadros de texto, la cual se llena con lineas y textos provenientes de otros programas. El problema es que solo se imprimen las lineas que se dibujan despues de ejecutar el programa(no he podido imprimir ni los Shapes ni tampoco los cuadros de texto que estan diseñados previamente).Ahora, lo que veo en pantalla es lo que quiero imprimir, sin usar el metodo PrintForm,(solo Picture Box).
Muchos de ustedes me han dado como consejo usar PaintPicture, pero despues de varias horAS DE QUEMARME LAS PESTAÑAS noo HE PODIDO IMPRIMIR LA TOTALIDAD DE LO QUE TENGO EN EL PICTUREBOX. cREO QUE PUEDE SER TALVEZ UN PROBLEMA DE ALGUNA PROPIEDAD YA SEA DE LOS sHAPES QUE DIBUJO DENTRO DEL PICTUREBOX O QUE SIMPLEMENTE NO SE COMO AGRUPAR TODOS LOS ELEMENTOS PRESENTES EN ESTE PARA IMPRIMIR TODOS LOS ELEMENTOS.
Les agradecere mucho su ayuda y espero que no les parezca tan basica la consulta y ojala puedan responderme.
De antemano Muchas Gracias
mARCELO U.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda

Publicado por marcelo (46 intervenciones) el 14/03/2005 19:00:46
es muy complicado o facil??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda

Publicado por Benjo (679 intervenciones) el 15/03/2005 01:49:33
Marcelo, no es que el código sea muy dificil, sino que hay que sentarse a escribirlo.
Mirá para orientarte, los TextBox son objetos y el Objeto Picture sólo captura imagenes, es por eso que te han recomendado imprimir el Formulario entero.
Ahora bien si lo que querés es sólo la imagen pues vas a tener que recortar un poco.
Mirá, en un Form, colocá dos botones, un picture box y dentro de éste un shape y un textBox.
Luego usá este código y verás a que me refiero con recortar.

Private Declare Function PrintWindow Lib "user32" (ByVal hWnd As Long, ByVal hdcBlt As Long, ByVal nFlags As Long) As Long

Private Sub Command1_Click()
Picture1.AutoRedraw = True
'Dibujo sobre el DeviceContext del Pictue Box la imagen correspondiente a a todo el Form
PrintWindow Me.hWnd, Picture1.hDC, 0
'Refresco el PictureBox para que muestre la imagen.
Picture1.Refresh
End Sub

Private Sub Command2_Click()
'Ahora, oculto los objetos, ya que han quedado impresos en la imagen
Text1.Visible = False
Shape1.Visible = False
End Sub
Private Sub Form_Load()
Command1.Caption = "Copiar imagen del Formulario"
Command2.Caption = " Oculta los objetos"
End Sub

Ahora sólo te queda recortar la imagen, podés usar BitBlt o PaintPicture
Mucha información sobre esto encontrarás en el MSDN que viene con Visual 6
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda

Publicado por Victor Tapia (41 intervenciones) el 15/03/2005 03:39:19
Solo un Aporte ,, Funciona Solo Con WinXp no con 2000 o NT

:(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda

Publicado por Benjo (679 intervenciones) el 15/03/2005 13:39:54
Victor tiene razón, esa función sólo sirve para XP
Puedes usar entonces keybd_event que requiere de Nt3.1 en adelante y de W95 en adelante.
Además es mucho más simple
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
' en tu form colocá un picturebox, un shape, un commandButton, un textBox y un CheckBox.

Private Sub Command1_Click()
Call keybd_event(vbKeySnapshot, 1, 0, 0)
DoEvents
Picture1.Picture = Clipboard.GetData
Check1.Visible = False
Text1.Visible = False
Shape1.Visible = False
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar