mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2025-05-10 00:29:22 +08:00
55 lines
1.6 KiB
C
55 lines
1.6 KiB
C
/*
|
|
* The following code loads a BITMAP object from a file and then
|
|
* fills a box in a DC.
|
|
*
|
|
* You should note that the code assigns 'bmType' field of the BITMAP object directly.
|
|
*/
|
|
{
|
|
int tox = 800, toy = 800;
|
|
int count;
|
|
BITMAP bitmap;
|
|
unsigned int start_tick, end_tick;
|
|
|
|
/* Load the bitmap from the file. */
|
|
if (LoadBitmap (hdc, &bitmap, "res/icon.bmp"))
|
|
return;
|
|
|
|
bitmap.bmType = BMP_TYPE_ALPHACHANNEL;
|
|
|
|
/* Fill a box with the bitmap with alpha channel. */
|
|
start_tick = GetTickCount ();
|
|
count = 1000;
|
|
while (count--) {
|
|
tox = rand() % 800;
|
|
toy = rand() % 800;
|
|
|
|
/* Set a random alpha channel. */
|
|
bitmap.bmAlpha = rand() % 256;
|
|
/* Fill the box. */
|
|
FillBoxWithBitmap (hdc, tox, toy, 0, 0, &bitmap);
|
|
}
|
|
end_tick = GetTickCount ();
|
|
TellSpeed (hwnd, start_tick, end_tick, "Alpha Blended Bitmap", 1000);
|
|
|
|
bitmap.bmType = BMP_TYPE_ALPHACHANNEL | BMP_TYPE_COLORKEY;
|
|
/* Set the color key (the transparent pixel) of the bitmap. */
|
|
bitmap.bmColorKey = GetPixelInBitmap (&bitmap, 0, 0);
|
|
|
|
/* Fill a box with the bitmap with alpha channel and color key. */
|
|
start_tick = GetTickCount ();
|
|
count = 1000;
|
|
while (count--) {
|
|
tox = rand() % 800;
|
|
toy = rand() % 800;
|
|
|
|
/* Set a random alpha channel. */
|
|
bitmap.bmAlpha = rand() % 256;
|
|
/* Fill the box. */
|
|
FillBoxWithBitmap (hdc, tox, toy, 0, 0, &bitmap);
|
|
}
|
|
end_tick = GetTickCount ();
|
|
TellSpeed (hwnd, start_tick, end_tick, "Alpha Blended Transparent Bitmap", 1000);
|
|
|
|
UnloadBitmap (&bitmap);
|
|
}
|