c++ api 双缓冲绘图

本文地址:http://tongxinmao.com/Article/Detail/id/341

HDC hdcmem; //内存DC

HDC hdc;    //设备DC

HBITMAP hbm;//位图句柄


scrx = GetSystemMetrics(SM_CXSCREEN); //屏幕宽度   

scry = GetSystemMetrics(SM_CYSCREEN); //屏幕高度


hdc = GetDC(hWnd); // 获取设备DC

hdcmem = CreateCompatibleDC(hdc); //创建一个兼容设备的内存DC


// 创建一个位图

hbm = CreateCompatibleBitmap(hdc,scrx,scry);

// 把位图加载到内存DC中,之后的绘图其实就是在位图上绘图

SelectObject( hdcmem , hbm ); 

//释放DC 

ReleaseDC(hWnd,hdc);


// 开始绘图

hdc = BeginPaint(hWnd, &ps);

hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);

//刷白位图

SelectObject(hdcmem,hbr);

Rectangle(hdcmem,0,0,scrx,scry);

DeleteObject(hbr);


/*

 * 此处添加绘图代码

 */


//将内存DC 复制到设备DC上

BitBlt(hdc,0,0,scrx,scry,hdcmem,0,0,SRCCOPY);


//结束绘图

EndPaint(hWnd, &ps);


上一篇:C++ builder拖放文件实现
下一篇:N2N 搭建及使用