跟随的书本的进度,今天尝试GDI载入bmp格式位图,采用创建与屏幕窗口兼容的DC作为缓冲,使窗口重绘更平滑。
载入位图分为四个步骤:
1、载入位图;使用LoadImage()载入位图资源。
2、创建兼容DC;使用CreateCompatible()创建与窗口DC兼容的内存DC用于缓存图像信息。
3、选用位图对象;使用SelectObject()将第一步载入的对象选用为兼容DC内位图对象。
4、进行贴图;使用BilBlt()将兼容DC内的位图贴在窗口DC上,实现位图的显示。
在最后释放资源的时候,采用先进后出的方式,先创建的对象最后释放,后创建的对象,先释放。
源码:
/*
尝试GDI载入位图,采用创建与屏幕窗口兼容的DC作为缓冲,使窗口重绘更平滑
2017/08/20
*/
//头文件
#include <windows.h>
//全局变量
HDC g_hdc,g_mdc;
HBITMAP g_BitMap;
//全局函数声明
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
bool Game_Init(HWND);
void Game_Paint(HWND);
bool Game_CleanUp(HWND);
//入口函数
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR lpCmdLine,int nCmdShow)
{
//创建窗口类
WNDCLASSEX wndClass = { 0 };
wnd