Cómo se utiliza la función BitBlt de Windows en aplicación de Visual Basic

Seleccione idioma Seleccione idioma
Id. de artículo: 147810 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Windows GDI.EXE tiene una función denominada BitBlt que moverá el origen dispositivo proporcionado por el parámetro hSrcDC en el dispositivo de destino dado por la parámetro hDestDC. Este artículo explica con detalle los argumentos de la Llamada a la función BitBlt de Windows.

Más información

Para utilizar BitBlt dentro de una aplicación de Visual Basic:

Utilice la siguiente instrucción Declare para declarar la función de 16 bits Visual Basic. (Si la declaración se coloca en las declaraciones generales sección de un formulario, la palabra clave Private se deban colocar al principio de la declaración).
   Declare Function BitBlt Lib "GDI" (ByVal hDestDC%, ByVal X%, _
         ByVal Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, _
         ByVal XSrc%, ByVal YSrc%, ByVal dwRop&) As Integer
				

Si está utilizando la versión de 32 bits de Visual Basic utilizar lo siguiente Declare (instrucción). (Si la declaración se coloca en la General Sección de declaraciones de un formulario, la palabra clave Private se deban colocar al a partir de la declaración.)
   Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
         ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
         ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _
         ByVal ySrc As Long, ByVal dwRop As Long) As Long
				

La continuación, define cada uno de los parámetros formales utilizados en la Declare:
Parameter   Definition
-----------------------------------------------------------------------
hDestDC     Specifies the device context that is to receive the bitmap.
X,Y         Specifies the logical x-coordinate and y-coordinate of the
            upper-left corner of the destination rectangle.

nWidth   Specifies the width (in logical units) of the destination
         rectangle and the source bitmap.

nHeight  Specifies the height (in logical units) of the destination
         rectangle and the source bitmap.

hSrcDC   Identifies the device context from which the bitmap will be
         copied. It must be NULL(zero) if the dwRop& parameter specifies a
         raster operation that does not include a source.

XSrc  Specifies the logical x-coordinate and the y-coordinate of the upper-
      left corner of the source bitmap.

dwRop Specifies the raster operation to be performed as defined below.
				

Las siguientes operaciones de mapa de bits se definen mediante las constantes predefinidas se encuentran en las ventanas.Archivo H suministrado con el Software de Windows de Microsoft Kit de desarrollo (SDK). El valor de los paréntesis () es el valor a asignar a la dwRop & la variable.
Code/Value (hex)     Description
--------------------------------------------------------------------------
BLACKNESS (42)       Turn output black.
DSINVERT(550009)     Inverts the destination bitmap.
MERGECOPY(C000CA)    Combines the pattern and the source bitmap using the
                     Boolean AND operation.
MERGEPAINT(BB0226)   Combines the inverted source bitmap with the
                     destination bitmap using the Boolean OR operator.
NOTSRCCOPY(330008)   Copies the inverted source bitmap to the destination.
NOTSRCERASE(1100A6)  Inverts the result of combining the destination and
                     source bitmap using the Boolean OR operator.
PATCOPY(F00021)      Copies the pattern to the destination bitmap.
PATINVERT(5A0049)    Combines the destination bitmap with the pattern using
                     the Boolean XOR operator.
PATPAINT(FB0A09)     Combines the inverted source bitmap with the pattern
                     using the Boolean OR operator. Combines the result of
                     this operation with the destination bitmap using the
                     Boolean OR operator.
SRCAND(8800C6)       Combines pixels of the destination and source bitmap
                     using the Boolean AND operator.
SRCCOPY(CC0020)      Copies the source bitmap to destination bitmap.
SRCERASE(4400328)    Inverts the destination bitmap and combines the
                     results with the source bitmap using the Boolean AND
                     operator.
SRCINVERT(660046)    Combines pixels of the destination and source bitmap
                     using the Boolean XOR operator.
SRCPAINT(EE0086)     Combines pixels of the destination and source bitmap
                     using the Boolean OR operator.
WHITENESS(FF0062)    Turns all output white.
				

Ejemplo paso a paso

Éste es un ejemplo que muestra cómo copiar el contenido de un control de imagen el contenido de otro control de imagen.
  1. Inicie un nuevo proyecto en Visual Basic. Se creará Form1 de forma predeterminada. Lugar dos imágenes controles (Picture1 y Picture2) a Form1.
  2. Agregue un módulo BAS para el proyecto.
  3. En la sección de declaraciones generales del módulo, coloque el siguiente código para declarar la API BitBlt:
          #If Win32 Then
          Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x _
          As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As _
          Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As _
          Long, ByVal dwRop As Long) As Long
          #Else
          Declare Function BitBlt Lib "GDI" (ByVal hDestDC%, ByVal X%, ByVal _
          Y%, ByVal nWidth%, ByVal nHeight%, ByVal hSrcDC%, ByVal XSrc%, _
          ByVal YSrc%, ByVal dwRop&) As Integer
          #End If
    
    						
  4. Mostrar algunos gráficos en Picture1 por la carga de un archivo de imagen o forma Pegar desde el Portapapeles en tiempo de diseño. Puede cargar una imagen desde un de archivos como se indica a continuación:

    1. Seleccione imagen en el cuadro de lista de propiedades y haga clic en el botón con tres puntos a la derecha del cuadro de configuración.
    2. A continuación, seleccione el archivo de imagen que desee, como un.BMP o.Archivo ICO suministrado con Microsoft Windows en el cuadro de diálogo.
  5. Agregue el código siguiente al procedimiento Form_Click:
          Private Sub Form_Click ()
          #If Win32 Then
          Const PIXEL = 3
          Picture1.ScaleMode = PIXEL
          Picture2.ScaleMode = PIXEL
          hDestDC& = Picture2.hDC
          x& = 0: y& = 0
          nWidth& = Picture2.ScaleWidth
          nHeight& = Picture2.ScaleHeight
          ' Assign information of the source bitmap.
          hSrcDC& = Picture1.hDC
          xSrc& = 0: ySrc& = 0
          ' Assign the SRCCOPY constant to the Raster operation.
          dwRop& = &HCC0020
          Suc& = BitBlt(hDestDC&, x&, y&, nWidth&, nHeight&, hSrcDC&, _
          xSrc&, ySrc&, dwRop&)
          #Else
          ' Assign information of the destination bitmap. Note that Bitblt
          ' requires coordinates in pixels.
          Const PIXEL = 3
          Picture1.ScaleMode = PIXEL
          Picture2.ScaleMode = PIXEL
          hDestDC% = Picture2.hDC
          x% = 0: y% = 0
          nWidth% = Picture2.ScaleWidth
          nHeight% = Picture2.ScaleHeight
          ' Assign information of the source bitmap.
          hSrcDC% = Picture1.hDC
          xSrc% = 0: ySrc% = 0
          ' Assign the SRCCOPY constant to the Raster operation.
          dwRop& = &HCC0020
          Suc% = BitBlt(hDestDC%, x%, y%, nWidth%, nHeight%, hSrcDC%, _
          xSrc%, ySrc%, dwRop&)
          #End If
          End Sub
    
    						
  6. Ejecute el programa. Haga clic en el formulario. El contenido de la primera imagen se puede mostrar en la imagen de cond se.

Propiedades

Id. de artículo: 147810 - Última revisión: domingo, 30 de diciembre de 2012 - Versión: 4.0
La información de este artículo se refiere a:
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Enterprise Edition
Palabras clave: 
kbhowto kbmt KB147810 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 147810

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com