StretchBlt()/StretchDIBits() falha quando tamanhos de mapa de bits divergentes bastante

Traduções de Artigos Traduções de Artigos
Artigo: 269585 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

StretchBlt() e StretchDIBits() poderão devolver FALSE (0, um valor BOLEANO, que indica falha) e isto poderá ocorrer mesmo se memória do sistema não for baixa, ambos os contextos de dispositivo são compatíveis e ambos os rectângulos dentro dos limites adequados. Este problema pode ocorrer se o mapa de bits origem é muito menor do que o mapa de bits do destino.

Este problema é conhecido para afectar a apresentação de determinados mapas de bits como padrão de fundo do ambiente de trabalho com o conteúdo da Web do ambiente de trabalho Active Directory activado.

Causa

Este problema ocorre porque a interface de dispositivos gráficos (GDI, Graphics Device Interface) atribui uma memória intermédia interna de mapa de bits escala operações. Uma linha de análise (ou banda) do mapa de bits origem é esticada (ou escala) para esta memória intermédia e, em seguida, são copiados para o mapa de bits do destino. O tamanho da memória intermédia é determinado pelas seguintes condições iniciais:
  • A largura do mapa de bits destino PELS uma origem de pesquisa linha.
  • O factor de escala vertical (altura destino / origem altura).
  • O número de bytes por PEL (profundidade de cor).
O tamanho máximo esta memória intermédia está limitado a 64 quilobytes (para StretchBlt()) e 192 kilobytes (para StretchDIBits()). Se a Factores escala ou Lagrange grande, poderá não ser possível StretchBlt() atribuir uma memória intermédia é inferior a 64 quilobytes (K), ambos e suficientemente grande para processar uma única banda. Do mesmo modo, StretchDIBits() não poderá atribuir uma memória intermédia é inferior a 192 K que possa acomodar uma única banda.

Tendo em conta métricas de visualização de 1024 x 768 x 256 cores e um mapa de origem de 16 x 16 bits, StretchBlt() falhar devido a condições de limite no método escondidos que é utilizado para procurar o tamanho ideal da memória intermédia, mas teria êxito se o mapa de bits origem 18 x 18 ou superior.

Mais Informação

Para obter informações adicionais sobre por que razão StretchBlt() poderá falhar, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
92529INFO: Razões para falhas de funções de mapa de bits
Para obter informações adicionais sobre como este problema afecta conteúdo de Web de ambiente de trabalho activo, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
269595PROBLEMA: Padrão ambiente de trabalho fundo Active codificada
Para obter informações adicionais sobre este problema e Microsoft Windows 3.x, clique no número de artigo existente abaixo para visualizar o artigo na base de dados de conhecimento da Microsoft:
111865Erro: Falha de StretchBlt()/StretchDIBits() com esticar muito grande

Propriedades

Artigo: 269585 - Última revisão: 13 de fevereiro de 2014 - Revisão: 1.3
A informação contida neste artigo aplica-se a:
  • Microsoft Windows 98 Segunda Edição
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 269585

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