Ir para conteúdo
Fórum Script Brasil
  • 0

Gráficos Defeituosos


Denis Bittencourt Muniz

Pergunta

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long

Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

Sub DrawRectangle(sX As Long, eX As Long, sY As Long, eY As Long, Color As Long)

For Oeste = sX To eX
    SetPixel GetDC(0), sY, Oeste, Color
Next

For Leste = sX To eX
    SetPixel GetDC(0), eY, Leste, Color
Next

For Norte = sY To eY
    SetPixel GetDC(0), Norte, sX, Color
Next

For Sul = sY To eY
    SetPixel GetDC(0), Sul, eX, Color
Next
End Sub
'
'
Sub Main()
Dim A As Long, B As Long, C As Long, D As Long

A = 1
B = 91
C = 491
D = 691


For x = 1 To 10 'Número de retangulos

    DrawRectangle A, B, C, D, RGB(Int(Rnd * 255), Int(Rnd * 255), Int(Rnd * 255))
    
    A = A + 5
    B = B + 5
    C = C + 5
    D = D + 5
    
Next


TextOut GetDC(0), 750, 150, "Autor: Denis Bittencourt Muniz", 30

End
End Sub

beleza gente? A rotina acima, escrita por mim, desenha gráficos, mais especificamente, retângulos, na tela do monitor, ou seja, não depende de nenhum formulário, o desenho é feito em cima do que estiver na tela naquele momento, quando foi feita a execução.

Bom, está tudo beleza, funciona! Mas quando executo o programa muita vezes (geralmente 2 vezes) o programa faz o vídeo ficar defeituoso (parece até que ele fica sem memória disponível para o vídeo). O que será? Ouvi falar em tais API's Win32 que resolveria esse problema, mas quais são e como usá-lás? Decidi perguntar isso aqui na SB por causa da experiência do pessoal em relação as API's Win32.

Aguardo respostas! Obrigado.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...