Trucos Capturar e imprimir la pantalla o cualquier ventana

Este artículo muestra cómo capturar cualquier formulario o ventana incluyendo la pantalla completa en un Picture Box. Una vez que la imagen es capturada puede ser fácilmente impresa empleando el método PaintPicture del objeto Printer.

El ejemplo que se incluye provee una serie de rutinas útiles para capturar imágenes.
Las rutinas del ejemplo pueden :
  Capturar un formulario completo
  Capturar el área cliente de un formulario
  Capturar la ventana completa
  Capturar la ventana activa
  Capturar cualquier porción de una ventana a partir de su handle
  Crear un objeto Picture a partir de un bitmap y una paleta
  Imprimir un Picture tan grande como sea posible en una página

La rutina CreateBitmapPicture del ejemplo llama a OleCreatePictureIndirect para construir un objeto Picture a partir del handle de un bitmap y el handle de una paleta.
Si el Picture incluye una paleta válida, Visual Basic sabe cómo usarla cuando renderiza la imagen a la pantalla o la impresora. La rutina CreateBitmapPicture es empleada por la rutina CaptureWindow para construir objetos Picture conteniendo un bitmap de todo o parte de una ventana.

La rutina CaptureWindow del ejemplo captura una parte de una ventana a partir de su handle. Esta rutina incluye varios parámetros para describir la porción exacta de la ventana que se quiere capturar. La rutina copia la imagen de una ventana en un nuevo bitmap. También chequea si la pantalla tiene una paleta y hace una copia de ella. Luego llama a CreateBitmapPicture para construir un bitmap a partir de los recientemente creados bitmap y paleta.

Las rutinas CaptureForm, CaptureClient, CaptureScreen y CaptureActiveWindow emplean CaptureWindow para capturar las ventanas específicas. CaptureForm y CaptureClient le pasan la propiedad hWnd del formulario. CaptureScreen simplemente le da el handle del escritorio y CaptureActiveWindow le pasa el handle de la ventana activa.

Una vez que tenemos la imagen en el Picture es fácil imprimirla empleando el método PaintPicture del objeto Printer. El ejemplo contiene una rutina llamada PrintPictureToFitPage que usa el método PaintPicture para imprimir la imagen capturada tan grande como sea posible.

Download capture.zip  



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com