高分请教大侠 如何用VC写个全屏截取并保存下来并在当前客户区显示  网上的一些原代码调试不通啊 说是支持WIN95,在WIN2000下好象调试不通。有的是参数不知何解何用。  急用  急等指导   谢谢

解决方案 »

  1.   

    //源句柄
    HDC hdcDisplay = CreateDC("DISPLAY",NULL,NULL,NULL);
    int nWrith = GetDeviceCaps(hdcDisplay,HORZRES);
    int nTop = GetDeviceCaps(hdcDisplay,VERTRES);
    //保存句柄
    HDC hdcDisplayMem = CreateCompatibleDC(hdcDisplay);
    HBITMAP hbitDisplayMap = CreateCompatibleBitmap(hdcDisplay, nWrith, nTop);
    //申请资源
    SelectObject(hdcDisplayMem,hbitDisplayMap);
    //拷贝
    BitBlt(hdcDisplayMem,0,0,nWrith,nTop,hdcDisplay,0,0,SRCCOPY); HDC hdcMyShow = ::GetDC(this->m_hWnd);
    BitBlt(hdcMyShow,0,0,nWrith,nTop,hdcDisplayMem,0,0,SRCCOPY);
      

  2.   

    再请教 HDC 、 HBITMAP 和 CDC 、 CBITMAP  有什么差别呢?
    抓屏的图在客户区有显示,但是一动便没了,怎么办啊?
    如何把图保存为bmp文件啊?是不是保存为bmp文件后再引入客户区便不会一动便没了。
    谢谢大侠!
      

  3.   

    再请教大侠  从.BMP文件中加载位图,并在当前客户区显示出来,我用的是LoadImage 函数,但是出现颜色不正常,兰色变红色,怎么办啊  谢谢
      

  4.   

    上面的已经说了,用
    HDC hdcDisplayMem = CreateCompatibleDC(hdcDisplay);
      

  5.   

    H开头是句柄啊,C开头的是类嘛,颜色不正常是条色板的问题啊,要保存下来,先要得到位图文件头和文件信息头,PBITMAIINFO,PBITMAPFILEHEADER,然后WRITEFILE,在MSDN中有详细的例子