Título:Desenhando Bitmaps
Linguagem:C/C++
S.O.:Windows
Autor(es):Wenderson Teixeira
No Windows, quando se quer desenhar um bitmap, deve-se realizar diversos passos at� obter alguma coisa vis�vel na tela.
A maneira mais f�cil e usual, � carregar um DDB (Bitmap Dependente de Dispositivo), selecion�-lo em um DC (Contexto de Dispositivo) em mem�ria e desenh�-lo no DC da tela, acontece que fazer isso toda vez que ser desenhar um bitmap � um pouco chato e costuma acrescentar v�rias linhas de c�digo ao programa, tornando-o dif�cil de se entender, por isso eu resolvi criar uma rotina que automatize parte desta tarefa. Esta rotina j� faz todo o processo criar o DC tempor�rio, selecionar o bitmap, desenhar no DC da tela, e liberar o DC tempor�rio.
void far pascal DrawBitmap(HDC hdc, HBITMAP hBitmap, int x, int y)
{
BITMAP bm;
HDC hdcTemp = CreateCompatibleDC(hdc);
HBITMAP hOldBitmap = SelectObject(hdcTemp, hBitmap);
// Pega as propriedades do bitmap.
GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&bm);
// Copia o bitmap do DC para o destino.
BitBlt(hdc, x, y, bm.bmWidth, bm.bmHeight, hdcTemp, 0, 0, SRCCOPY);
// Restaura o bitmap antigo do DC.
SelectObject(hdcTemp, hOldBitmap);
// Delete o DC em mem�ria.
DeleteObject(hdcTemp);
}