zoukankan      html  css  js  c++  java
  • 双缓存图片显示常用函数01CreateMemSrcDC

    >>>改进:可以使用结构来返回多个返回值

    >> 方法1:

    CreateMemSrcDC 返回值 -----创建的内存DC

    HBITMAP &hBmp -----创建的内存DC选中的图片

    HBITMAP &hOldBmp -----创建的内存DC选中的图片前保存的图片

    m_hMemSrcDC = CreateMemSrcDC(m_hSrcBmp, m_hOldSrcBmp, pDC, sz.cx+2, sz.cy+2);

    HDC CLDCText30Control::CreateMemSrcDC(HBITMAP &hBmp, HBITMAP &hOldBmp, CDC * pDC, int width, int height)
    {
    CDC *pMemDC = new CDC;
    if (pMemDC->CreateCompatibleDC(pDC))
    {
    pMemDC->SetMapMode(pDC->GetMapMode());
    // create output bmp
    CBitmap *pBmp = new CBitmap();
    BOOL lg = pBmp->CreateCompatibleBitmap(pDC, width, height);
    hOldBmp = (HBITMAP)pMemDC->SelectObject(pBmp)->m_hObject;
    hBmp = (HBITMAP)pBmp->m_hObject;
    return pMemDC->m_hDC;
    }
    else
    {
    delete pMemDC;
    pMemDC=NULL;
    return 0;
    }
    }

    >>方法2:

     HDC  m_hBkPreCtrlMemDC;
     HBITMAP m_hBkPreCtrlBmp;
     HBITMAP m_hOldBmp;

    HDC CLDCControl50::CreateMemSrcDC(HDC hDC, int width, int height)
    {
    ReleaseMemSrcDC();

    m_hBkPreCtrlMemDC = ::CreateCompatibleDC(hDC);
    if (m_hBkPreCtrlMemDC)
    {
    ::SetMapMode(m_hBkPreCtrlMemDC, ::GetMapMode(hDC));
    // create output bmp
    m_hBkPreCtrlBmp = CreateCompatibleBitmap(hDC, width, height);
    m_hOldBmp = (HBITMAP)SelectObject(m_hBkPreCtrlMemDC, m_hBkPreCtrlBmp);
    return m_hBkPreCtrlMemDC;
    }
    return NULL;
    }

    void CLDCControl50::ReleaseMemSrcDC()
    {
    if (m_hOldBmp != NULL)
    {
    SelectObject(m_hBkPreCtrlMemDC, m_hOldBmp);
    m_hOldBmp = NULL;
    }

    if (m_hBkPreCtrlBmp != NULL)
    {
    DeleteObject(m_hBkPreCtrlBmp);
    }

    if (m_hBkPreCtrlMemDC != NULL)
    {
    DeleteDC(m_hBkPreCtrlMemDC);
    }
    }



  • 相关阅读:
    select在各个浏览器中的兼容性问题
    pc打开手机站提示切换为手机屏幕
    图片预加载
    div盒子水平垂直居中的方法
    如何检测该浏览器为微信浏览器
    小箭头的写法,z-index在ie7显示混乱问题
    微信a标签不跳转
    css font简写规则
    windows环境cmd下执行jar
    docker制作镜像步骤
  • 原文地址:https://www.cnblogs.com/carl2380/p/2317371.html
Copyright © 2011-2022 走看看