纯桌面就是桌面上没有任何窗口。
不能用win+D

解决方案 »

  1.   

    void CMyFun::CopyScreenToBitmap(xStartPt, yStartPt, width, height, xToCopy, yToCopy)
    {
            //NEW资源(调用一次重新拷贝一次)
            if (m_pBackBitmap != NULL)
            {
                    delete m_pBackBitmap;
                    m_pBackBitmap = NULL;
            }        m_pBackBitmap = new CBitmap();        CDC ScrDC,MemDC;        ScrDC.CreateDC("DISPLAY", NULL, NULL, NULL);
            MemDC.CreateCompatibleDC(&ScrDC);        m_pBackBitmap->CreateCompatibleBitmap(&ScrDC,width,height);
            MemDC.SelectObject(m_pBackBitmap);        //开始拷贝
            MemDC.BitBlt(xStartPt, yStartPt, width, height,&ScrDC,xToCopy,yToCopy,SRCCOPY);        ScrDC.DeleteDC();
            MemDC.DeleteDC();
    }
    调用函数,实现截取全屏: //取的屏幕分辨率
    int width = ::GetSystemMetrics(SM_CXSCREEN);
    int height = ::GetSystemMetrics(SM_CYSCREEN);this->CopyScreenToBitmap(0,0,width,height,0,0);
      

  2.   

    EnumWindow记录所有窗口句柄,先隐藏所有非桌面窗口再截屏,截完再显示所有非桌面窗口,行不
      

  3.   

    按理说,图层是DeskTop-》app1->app2
    那么desktop的dc应该只画自己的就ok了,至于显示出来是由于覆盖的缘故,那么获得desktop的dc就能获得它的那啥了~