sexta-feira, julho 14, 2006

Canvas e Skins do Winamp


GetWindowDC (WinAPI)

Às vezes o winamp trava e acusa que desenha seus skins sobre sua janela depois do windows. É quando eu posso ver que o winamp é "humano" porque ele usa os handles normais de janela que qualquer outro programa só que ele ultrapassa e desenha sobre o canvas da janela inteira (incluindo a barra de título - caption bar). Como se faz isso? WinAPI.
A função GetWindowDC retorna o que é explicado aqui:

The GetWindowDC function retrieves the device context (DC) for the entire window, including title bar, menus, and scroll bars. A window device context permits painting anywhere in a window, because the origin of the device context is the upper-left corner of the window instead of the client area.

Quer dizer que se você passar o handle de uma janela pra essa função ela retorna um índice controlador de contexto de dispositivo gráfico que te permite desenhar na janela inteira, sobrescrevendo o que normalmante você vê (botões minimizar, maximizar, etc). Isso permite capturar o desktop, capturar conteúdo de outros programas, capturar tudo que possa se transformar em Device Context pelo Windows. Que maravilha, hein?

0 Comentários:

Postar um comentário

<< Home

Pesquisa no Blog:
Web DelphiEArte.blogspot.com