zoukankan      html  css  js  c++  java
  • 从剪贴板中获取CF_DIB或CF_METAFILEPICT并显示它

    介绍 我需要显示一个位图从剪贴板是在 CF_DIB格式在我的一个应用程序。标准的MSDN文档中没有 关于如何做到这一点的信息。另外,这里所有其他剪贴板文章都有代码 将CF_DIB写入剪贴板,但不读取它。而且我已经有了 一些现有的代码,用于显示剪贴板中的元文件,两者都可能有用

      

    。 隐藏,收缩,复制Code

    // pDC is the DC to draw to
    // metafile is a CRect to display the DIB/Metafile in
        CRect    metafile(0, 0, 100, 100);    // example location
        if (IsClipboardFormatAvailable(CF_METAFILEPICT))
        {
            // play a metafile from the clipboard if available
            GLOBALHANDLE    hGMem ;
            LPMETAFILEPICT    lpMFP ;
            OpenClipboard() ;
            hGMem = GetClipboardData(CF_METAFILEPICT) ;
            lpMFP = (LPMETAFILEPICT)GlobalLock(hGMem) ;
            pDC->SaveDC() ;
            pDC->SetMapMode(lpMFP->mm) ;
            pDC->SetViewportExt(metafile.Width(), metafile.Height()) ;
            pDC->SetViewportOrg(metafile.left, metafile.top) ;
            pDC->PlayMetaFile(lpMFP->hMF) ;
            VERIFY(pDC->RestoreDC(-1)) ;
            GlobalUnlock(hGMem) ;
            CloseClipboard() ;
        }
        if (IsClipboardFormatAvailable(CF_DIB))
        {
            // a DIB is in the clipboard, draw it out
            GLOBALHANDLE    hGMem ;
            LPBITMAPINFO    lpBI ;
            void*            pDIBBits;
        
            OpenClipboard() ;
            hGMem = GetClipboardData(CF_DIB) ;
            lpBI = (LPBITMAPINFO)GlobalLock(hGMem) ;
            // point to DIB bits after BITMAPINFO object
            pDIBBits = (void*)(lpBI + 1); 
            ::StretchDIBits(pDC->m_hDC,
                metafile.left, metafile.top, 
                metafile.Width(), metafile.Height(),
                0, 0, lpBI->bmiHeader.biWidth, 
                lpBI->bmiHeader.biHeight,
                pDIBBits, lpBI, DIB_RGB_COLORS, SRCCOPY);
            GlobalUnlock(hGMem) ;
            CloseClipboard() ;
        }

    就是这样!享受吧! 本文转载于:http://www.diyabc.com/frontweb/news240.html

  • 相关阅读:
    EF框架 处理decimal字段 Sum() 遇到NULL时的特殊处理
    RSA加密解密及RSA签名和验证
    SQL 类似switch的东东用法
    js抛物线动画
    MyBatis的结果映射(resultMap)
    mybatis中#和$符号的区别
    MyBatis 中Mapper.xml中注意事项
    MyBatis sql映射器 Mapper
    MyBatis的自定义别名和内置别名
    MyBatis简单认识(入门)
  • 原文地址:https://www.cnblogs.com/Dincat/p/13431363.html
Copyright © 2011-2022 走看看