<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    貼一個CMemDC 代碼,這東西真不錯噢,短小精悍,可謂極品

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接 羅索客 發布于 2006-11-28 21:53 點擊:3941次  RFID設備管理軟件 來自: 原文: http://yuantao82.spaces.live.com/Blog/cns!8FC0A772D812A22F!139.entry?owner=1 #ifndef _MEMDC_H_ #define _MEMDC_H_ ////////////////////////////////////////////////// // CMemDC - memory DC // // Author: Keith Rule // Email: keithr@europa.com // TAG: 封裝類  CMemDC    

    原文:http://yuantao82.spaces.live.com/Blog/cns!8FC0A772D812A22F!139.entry?owner=1

    #ifndef _MEMDC_H_
    #define _MEMDC_H_

    //////////////////////////////////////////////////
    // CMemDC - memory DC
    //
    // Author: Keith Rule
    // Email: keithr@europa.com
    // Copyright 1996-2002, Keith Rule
    //
    // You may freely use or modify this code provided this
    // Copyright is included in all derived versions.
    //
    // History - 10/3/97 Fixed scrolling bug.
    // Added print support. - KR
    //
    // 11/3/99 Fixed most common complaint. Added
    // background color fill. - KR
    //
    // 11/3/99 Added support for mapping modes other than
    // MM_TEXT as suggested by Lee Sang Hun. - KR
    //
    // 02/11/02 Added support for CScrollView as supplied
    // by Gary Kirkham. - KR
    //
    // This class implements a memory Device Context which allows
    // flicker free drawing.

    class CMemDC : public CDC {
    private: 
    CBitmap m_bitmap; // Offscreen bitmap
    CBitmap* m_oldBitmap; // bitmap originally found in CMemDC
    CDC* m_pDC; // Saves CDC passed in constructor
    CRect m_rect; // Rectangle of drawing area.
    BOOL m_bMemDC; // TRUE if CDC really is a Memory DC.
    public:

    CMemDC(CDC* pDC, const CRect* pRect = NULL) : CDC()
    {
    ASSERT(pDC != NULL); 

    // Some initialization
    m_pDC = pDC;
    m_oldBitmap = NULL;
    m_bMemDC = !pDC->IsPrinting();

    // Get the rectangle to draw
    if (pRect == NULL) {
    pDC->GetClipBox(&m_rect);
    } else {
    m_rect = *pRect;
    }

    if (m_bMemDC) {
    // Create a Memory DC
    CreateCompatibleDC(pDC);
    pDC->LPtoDP(&m_rect);

    m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), 
    m_rect.Height());
    m_oldBitmap = SelectObject(&m_bitmap);

    SetMapMode(pDC->GetMapMode());

    SetWindowExt(pDC->GetWindowExt());
    SetViewportExt(pDC->GetViewportExt());

    pDC->DPtoLP(&m_rect);
    SetWindowOrg(m_rect.left, m_rect.top);
    } else {
    // Make a copy of the relevent parts of the current 
    // DC for printing
    m_bPrinting = pDC->m_bPrinting;
    m_hDC = pDC->m_hDC;
    m_hAttribDC = pDC->m_hAttribDC;
    }

    // Fill background 
    FillSolidRect(m_rect, pDC->GetBkColor());
    }

    ~CMemDC() 

    if (m_bMemDC) {
    // Copy the offscreen bitmap onto the screen.
    m_pDC->BitBlt(m_rect.left, m_rect.top, 
    m_rect.Width(), m_rect.Height(),
    this, m_rect.left, m_rect.top, SRCCOPY); 

    //Swap back the original bitmap.
    SelectObject(m_oldBitmap); 
    } else {
    // All we need to do is replace the DC with an illegal
    // value, this keeps us from accidentally deleting the 
    // handles associated with the CDC that was passed to 
    // the constructor. 
    m_hDC = m_hAttribDC = NULL;

    }

    // Allow usage as a pointer 
    CMemDC* operator->() 
    {
    return this;


    // Allow usage as a pointer 
    operator CMemDC*() 
    {
    return this;
    }
    };

    #endif

    (iwgh)   本站文章除注明轉載外,均為本站原創或編譯歡迎任何形式的轉載,但請務必注明出處,尊重他人勞動,同學習共成長。轉載請注明:文章轉載自:羅索實驗室 [http://www.rosoo.net/a/200611/6425.html]   RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全