StretchBlt()/StretchDIBits() falha quando os tamanhos de bitmap diferem consideravelmente

Traduções deste artigo Traduções deste artigo
ID do artigo: 269585 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

StretchBlt() e StretchDIBits() podem retornar falso (0, um valor booleano, que indica falha), e isso pode ocorrer mesmo se a memória do sistema não for baixa, ambos os contextos de dispositivo são compatíveis e os dois retângulos estão dentro dos limites adequados. Esse problema pode ocorrer se o bitmap de origem é muito menor do que o bitmap de destino.

Esse problema é conhecido por afeta a exibição de determinados bitmaps como papel de parede da área de trabalho com conteúdo Active Desktop Web habilitado.

Causa

Esse problema ocorre porque a interface gráfica de dispositivo (GDI) aloca um buffer interno para dimensionamento operações de bitmap. Uma linha de verificação (ou faixa) do bitmap de origem é alongada (ou dimensionada) para esse buffer e em seguida, copiados para o bitmap de destino. O tamanho do buffer é determinado pela iniciais condições a seguir:
  • A largura do bitmap de destino na PELS uma fonte de linha de verificação.
  • O fator de escala vertical (altura de destino / origem altura).
  • O número de bytes por PEL (intensidade de cor).
O tamanho máximo desse buffer é restrita a 64 quilobytes (para StretchBlt()) e 192 kilobytes (para StretchDIBits()). Se o fatores de escala ou Lagrange forem grandes, talvez não seja possível para StretchBlt() alocar um buffer é menor do que 64 kilobytes (K), e grande o suficiente para lidar com uma única faixa. Da mesma forma, StretchDIBits() não poderá alocar um buffer é menor que 192 K pode acomodar uma única faixa.

Dado métricas de exibição de 1024 x 768 x 256 cores e um bitmap de 16 x 16 origem, StretchBlt() falhar devido a condições de limite do método de busca que é usado para buscar o tamanho do buffer ideal, mas seria bem-sucedida se o bitmap de origem fosse 18 x 18 ou maior.

Mais Informações

Para obter informações adicionais sobre por que StretchBlt() pode falhar, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
92529INFO: Motivos para falha de funções de bitmap
Para obter informações adicionais sobre como esse problema afeta o conteúdo do Active Desktop da Web, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
269595PROBLEMA: Wallpaper Desktop Active embaralhada
Para obter informações adicionais sobre esse problema e Microsoft Windows 3.x, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
111865Erro: Falha de StretchBlt()/StretchDIBits() com Stretch muito grande

Propriedades

ID do artigo: 269585 - Última revisão: domingo, 20 de outubro de 2013 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 98 Second Edition
  • Microsoft Windows 98 Standard Edition
  • Microsoft Windows 95
  • Microsoft Windows Millennium Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbdisplay kbprb KB269585 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 269585

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