Compartilhar via


BitBlt

Windows Mobile SupportedWindows Embedded CE Supported

9/9/2008

Essa função transfere pixels de um retângulo origem especificado para um retângulo destino especificado, a alteração de pixels de acordo com a codificar operação de varredura selecionado (ROP).

Syntax

BOOL BitBlt(
  HDC hdcDest, 
  int nXDest, 
  int nYDest, 
  int nWidth, 
  int nHeight, 
  HDC hdcSrc, 
  int nXSrc, 
  int nYSrc, 
  DWORD dwRop
);

Parameters

  • hdcDest
    [no] Identificador para o contexto dispositivo destino.
  • nXDest
    [no] Especifica o x lógica-coordenar do upper-left corner do retângulo de destino.
  • nYDest
    [no] Especifica a y lógica-coordenar do upper-left corner do retângulo de destino.
  • nWidth
    [no] Especifica a largura lógica de retângulos de origem e destino.
  • nHeight
    [no] Especifica a altura lógica da origem e de retângulos destino.
  • hdcSrc
    [no] Identificador para o contexto dispositivo origem.
  • nXSrc
    [no] Especifica o x lógica-coordenar do upper-left corner do retângulo de origem.
  • nYSrc
    [no] Especifica a y lógica-coordenar do upper-left corner do retângulo de origem.
  • dwRop
    [no] Especifica uma varredura-codificar operação.

    Esses códigos definem como os dados cor para o retângulo origem é para ser combinada com os dados cor para o retângulo destino para atingir a cor final.

    A seguinte lista mostra algumas comum códigos operação de varredura.

    Valor Descrição

    BLACKNESS

    Preenche o retângulo destino usando a cor associado com índice 0 no físico paleta.

    Essa cor é preta para o físico usar como padrão paleta.

    DSTINVERT

    Inverte o retângulo destino.

    MERGECOPY

    Mescla as cores do retângulo de origem com o padrão especificado, usando o operador Boolean AND.

    MERGEPAINT

    Mescla as cores do retângulo de origem invertida com as cores do retângulo de destino usando o Boolean operador OR.

    NOTSRCCOPY

    Copia o retângulo invertido origem para o destino.

    NOTSRCERASE

    Combina as cores dos retângulos de origem e destino usando o Boolean operador OR e, em seguida, inverte a cor resultante.

    PATCOPY

    Copia o padrão especificado para o bitmap destino.

    PATINVERT

    Combina as cores do padrão especificado com as cores do retângulo de destino usando o operador Boolean XOR.

    PATPAINT

    Combina as cores do padrão com as cores do retângulo de origem invertido usando o Boolean operador OR.

    O resultado dessa operação é combinado com as cores do retângulo de destino usando o Boolean operador OR.

    SRCAND

    Combina as cores dos retângulos de origem e destino usando o operador Boolean AND.

    SRCCOPY

    Copia o retângulo origem diretamente para retângulo de destino.

    SRCERASE

    Combina as cores invertidas do retângulo de destino com as cores do retângulo de origem usando o operador Boolean AND.

    SRCINVERT

    Combina as cores dos retângulos de origem e destino usando o operador Boolean XOR.

    SRCPAINT

    Combina as cores dos retângulos de origem e destino usando o Boolean operador OR.

    WHITENESS

    Preenche o retângulo destino usando a cor associado com índice 0 no físico paleta.

    Essa cor é branco para o físico usar como padrão paleta.

    Para o lista completa dos códigos de operações de varredura, consulte Operações de varredura ternários.

Return Value

Nonzero indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.

Exemplo de código

O seguinte exemplo de código mostra como usar BitBlt Para copiar todos os pixels em um bitmap em outro bitmap.

Observação

Para fazer o seguinte exemplo de código mais fácil de ler, verificação de erro não está incluído.Esta exemplo de código não devem ser usadas em uma configuração versão a menos que ele foi modificado para incluir Seguro manipulação de erro.

HBITMAP CopyBitmap( HBITMAP hbm) {
    HDC hdcSrc = CreateCompatibleDC(NULL);
    HDC hdcDst = CreateCompatibleDC(NULL);
    HBITMAP hbmOld, hbmOld2, hbmNew;
    BITMAP bm;
    GetObject(hbm, sizeof(bm), &bm);
    hbmOld = SelectObject(hdcSrc, hbm);
    hbmNew = CreateBitmap( bm.bmWidth, bm.bmHeight, bm.bmPlanes,
bm.bmBitsPixel,
            NULL);
    hbmOld2 = SelectObject(hdcDst, hbmNew);
    BitBlt(hdcDst, 0, 0, bm.bmWidth, bm.bmHeight, hdcSrc, 0, 0, SRCCOPY);
    SelectObject(hdcSrc, hbmOld);
    DeleteDC(hdcSrc);
    DeleteDC(hdcDst);
    return hbmNew;
}

Remarks

Se uma transformação de rotação ou distorcer é aplicado no contexto de dispositivo origem, BitBlt Retorna um erro.

Se houver outras transformações no contexto de dispositivo origem (e um compatível transformação não é aplicado no contexto de dispositivo destino), o retângulo no contexto de dispositivo destino é alongado, compactado ou girado conforme necessário.

Se os formatos cor dos contextos de dispositivo origem e destino não coincidirem, o BitBlt função converte o formato cor origem para corresponder ao formato de destino.

Quando um metarquivo avançado está sendo gravada, ocorrerá um erro se o contexto dispositivo origem identifica um avançado-contexto dispositivo metarquivo.

Nem todos os dispositivos suporte a BitBlt função.

Para obter mais informações, consulte a entrada funcionalidade de varredura RC_BITBLT in a GetDeviceCaps função, bem como a MaskBlt e StretchBlt funções.

BitBlt Retorna um erro se a origem e destino contextos dispositivo representam dispositivos diferentes.

Para obter informações sobre como blitting para exibe com right-to-left orientações, consulte Criando os bitmaps.

Windows CE 1.0 e 1.01, o dwRop parâmetro só pode ser atribuído a seguinte valores:

  • SRCAND
  • SRCCOPY
  • SRCINVERT
  • SRCPAINT

No Windows CE 2.0 e posterior, o dwRop parâmetro pode ser qualquer ROP3. Para obter mais informações, consulte Criando os bitmaps.

Requirements

Header windows.h
Library coredll.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

GetDeviceCaps
MaskBlt
StretchBlt
GDI Functions
Ternary Raster Operations