c++ api 双缓冲绘图

    本文地址:http://www.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 搭建及使用