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

  • 相关阅读:
    Multiple markers at this line
    用递归和位移进行枚举子集合
    Android开发如何双击返回键退出程序
    Android ImageView设置图片原理(下)
    北大OJ百练——2721:忽略大小写比较字符串大小
    场景示例 Nginx 访问日志
    2 插件管理
    第一章 入门示例
    zabbix 通过gateway 获取远程主机的JMX信息
    zabbix 通过gateway 获取远程主机的JMX信息
  • 原文地址:https://www.cnblogs.com/Dincat/p/13431363.html
Copyright © 2011-2022 走看看