Logo Hardware.com.br
jackinabox
jackinabox Veterano Registrado
1.1K Mensagens 8 Curtidas
#2 Por jackinabox
06/02/2005 - 13:26
Uuugh! Bem-vindo à Windows GDI! Só para dar uma idéia básica, vou enumerar alguns passos (é mais ou menos isso, no final há um link para exemplos reais):

Você vai precisar carregar a DLL, obtendo um handle para ela:

HINSTANCE hInstance = ::LoadLibrary("qcard32.dll"


Carregar o bitmap, usando LoadBitmap ou LoadImage, obtendo um handle para ele e passando como parâmetro o handle para a DLL:

HBITMAP hBitmap = :: LoadBitmap(hInstance, <nome do bitmap OU resource identifier&gt;


Criar um memory device context (DC) para armazenar o bitmap e selecioná-lo dentro desse DC:

HDC hOrigemDC = ::CreateCompatibleDC(NULL);
::SelectObject(hOrigemDC, hBitmap);


Obter as dimensões do bitmap:

BITMAP bitmap;
::GetObject(hBitmap, sizeof(bitmap), &bitmap);
int largura = bitmap.bmWidth;
int altura = bitmap.bwHeight;


Obter um handle para o device context destino:

hDestinoDC = <blá, blá, blá, ...>


Copiar a imagem do DC origem (que contém o bitmap) para o DC destino:

::BitBlt(hDestinoDC,
<coordenada x do destino>,
<coordenada y do destino>,
largura,
altura,
hOrigemDC,
<coordenada x da origem>,
<coordenada x do destino>,
<tipo de raster-operation&gt;


Você vai precisar também liberar (nos momentos adequados) os recursos GDI alocados, para evitar resource leaks, e também liberar a DLL carregada.

Com relação à API Win32, essa é apenas uma visão distante da ponta do iceberg. As funções de GDI da API Win32 vão muito além disso.

Exemplos:
http://www.catch22.net/tuts/cardtut2.asp
http://www.gamedev.net/reference/programming/features/gpgenesis6/
Jeferson Charles Mayer

"Como é que eu vou enxergar a tal floresta, com todas essas árvores atrapalhando a visão?"
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal