Função StretchBlt (wingdi.h)

A função StretchBlt copia um bitmap de um retângulo de origem em um retângulo de destino, alongando ou compactando o bitmap para ajustar as dimensões do retângulo de destino, se necessário. O sistema alonga ou compacta o bitmap de acordo com o modo de alongamento definido atualmente no contexto do dispositivo de destino.

Sintaxe

BOOL StretchBlt(
  [in] HDC   hdcDest,
  [in] int   xDest,
  [in] int   yDest,
  [in] int   wDest,
  [in] int   hDest,
  [in] HDC   hdcSrc,
  [in] int   xSrc,
  [in] int   ySrc,
  [in] int   wSrc,
  [in] int   hSrc,
  [in] DWORD rop
);

Parâmetros

[in] hdcDest

Um identificador para o contexto do dispositivo de destino.

[in] xDest

A coordenada x, em unidades lógicas, do canto superior esquerdo do retângulo de destino.

[in] yDest

A coordenada y, em unidades lógicas, do canto superior esquerdo do retângulo de destino.

[in] wDest

A largura, em unidades lógicas, do retângulo de destino.

[in] hDest

A altura, em unidades lógicas, do retângulo de destino.

[in] hdcSrc

Um identificador para o contexto do dispositivo de origem.

[in] xSrc

A coordenada x, em unidades lógicas, do canto superior esquerdo do retângulo de origem.

[in] ySrc

A coordenada y, em unidades lógicas, do canto superior esquerdo do retângulo de origem.

[in] wSrc

A largura, em unidades lógicas, do retângulo de origem.

[in] hSrc

A altura, em unidades lógicas, do retângulo de origem.

[in] rop

A operação de varredura a ser executada. Os códigos de operação de varredura definem como o sistema combina cores em operações de saída que envolvem um pincel, um bitmap de origem e um bitmap de destino.

Consulte BitBlt para obter uma lista de ROPs (códigos de operação de varredura comuns). Observe que o ROP CAPTUREBLT geralmente não pode ser usado para imprimir contextos de dispositivo.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero.

Comentários

StretchBlt alonga ou compacta o bitmap de origem na memória e copia o resultado para o retângulo de destino. Esse bitmap pode ser um DDB (bitmap) compatível ou a saída de CreateDIBSection. Os dados de cor para pixels de padrão ou de destino são mesclados após a ocorrência do alongamento ou compactação.

Quando um meta-arquivo aprimorado está sendo registrado, ocorre um erro (e a função retorna FALSE) se o contexto do dispositivo de origem identifica um contexto de dispositivo de meta-arquivo aprimorado.

Se a operação de varredura especificada exigir um pincel, o sistema usará o pincel atualmente selecionado no contexto do dispositivo de destino.

As coordenadas de destino são transformadas usando a transformação especificada atualmente para o contexto do dispositivo de destino; as coordenadas de origem são transformadas usando a transformação especificada atualmente para o contexto do dispositivo de origem.

Se a transformação de origem tiver uma rotação ou uma tesoura, ocorrerá um erro.

Se os bitmaps de destino, origem e padrão não tiverem o mesmo formato de cor, o StretchBlt converterá os bitmaps de origem e padrão para corresponder ao bitmap de destino.

Se StretchBlt precisar converter um bitmap monocromático em um bitmap de cor, ele definirá bits brancos (1) para a cor da tela de fundo e os bits pretos (0) para a cor de primeiro plano. Para converter um bitmap de cor em um bitmap monocromático, ele define pixels que correspondem à cor da tela de fundo como branco (1) e define todos os outros pixels como preto (0). As cores do primeiro plano e do plano de fundo do contexto do dispositivo com cor são usadas.

O StretchBlt criará uma imagem espelho de um bitmap se os sinais dos parâmetros nWidthSrc e nWidthDest ou se os parâmetros nHeightSrc e nHeightDest forem diferentes. Se nWidthSrc e nWidthDest tiverem sinais diferentes, a função criará uma imagem espelho do bitmap ao longo do eixo x. Se nHeightSrc e nHeightDest tiverem sinais diferentes, a função criará uma imagem espelho do bitmap ao longo do eixo y.

Nem todos os dispositivos dão suporte à função StretchBlt . Para obter mais informações, consulte GetDeviceCaps.

ICM: Nenhum gerenciamento de cores é executado quando ocorre uma operação blit.

Quando usados em um sistema de vários monitores, hdcSrc e hdcDest devem se referir ao mesmo dispositivo ou a função falhará. Para transferir dados entre DCs para diferentes dispositivos, converta o bitmap de memória em um DIB chamando GetDIBits. Para exibir o DIB para o segundo dispositivo, chame SetDIBits ou StretchDIBits.

Exemplos

Para obter um exemplo, consulte Dimensionando uma imagem.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wingdi.h (inclua Windows.h)
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também

Bitblt

Funções de bitmap

Visão geral do Bitmaps

Createdibsection

GetDIBits

Getdevicecaps

Maskblt

Plgblt

Setdibits

SetStretchBltMode

Stretchdibits