Erro: Falha de StretchBlt()/StretchDIBits() com Stretch muito grande

Traduções deste artigo Traduções deste artigo
ID do artigo: 111865 - Exibir os produtos aos quais esse artigo se aplica.
3,00 3.10 WINDOWS kbprg kbbuglist
Expandir tudo | Recolher tudo

Sintomas

Se o fator de alongamento for grande, por exemplo, quando alongamento de uma pequena uma altura grande StretchDIBits() e StretchBlt() podem retornar zero (0) e não exibir nada. O bitmap mesmo com um menor Alongar é exibido corretamente.

Causa

A maioria dos drivers de vídeo não implementam seus próprios StretchBlt() ou StretchDIBits() para que GDI deve simular essas chamadas. Parte da simulação GDI envolve alocar buffers de trabalho temporários, que são limitados a 64 K. Se o tamanho do buffer de trabalho é calculado seja maior que 64 K, a altura dos retângulos origem e destino são halved até que eles sejam menos de 64 K. O problema é que se deve continuar GDI dividir a altura por dois (2) para obter um buffer menor que 64 K, a altura de origem ou destino pode eventualmente alcançar uma linha de verificação. Neste ponto, a chamada falhará porque ele não é possível dividir uma linha de verificação em subunits.

StretchBlt() e StretchDIBits() não são projetados para fornecer alongando ilimitado. No entanto, eles podem falhar um pouco mais prematuramente que seus limitação de design.

Resolução

Se StretchBlt() ou StretchDIBits() falhar em uma grande Alongar, um aplicativo pode dividir o bitmap de origem, alongar as partes individualmente e posicioná-los corretamente uma vez alongada. Outra alternativa é fazer um alongue menor. Não há nenhuma fórmula para determinar exatamente o que bitmaps falhará em que tamanho alongamento.

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados no começo deste artigo.

Mais Informações

Para reproduzir o problema, crie um bitmap aproximadamente 2048 pixels de largura por 16 pixels de altura. Em seguida, exibir o bitmap com o exemplo DIBVIEW no SDK do Windows 3.1. Escolha Estender A janela menu de opções do DIBVIEW, para que o bitmap é alongado acordo com para o tamanho da janela do cliente. Quando a altura é mais de cerca de 200 pixels, o bitmap não será exibido.

Propriedades

ID do artigo: 111865 - Última revisão: segunda-feira, 7 de março de 2005 - Revisão: 2.1
A informação contida neste artigo aplica-se a:
  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
Palavras-chave: 
kbmt kbbug kbpending KB111865 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: 111865

Submeter comentários

 

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