如题.要求能够用鼠标截取桌面任意一块区域的图片,类似于QQ的效果.
[email protected]

解决方案 »

  1.   

    一个抓屏程序,LZ可以参考一下:
    http://www.czvc.com/down.asp?id=15
      

  2.   

    HBITMAP CM..Dlg::CopyScreenToBitmap()
    {
    CRect rect(0,0,GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN));
    HDC hScrDC,hMemDC; // 屏幕和内存设备描述表
    HBITMAP hBitmap, hOldBitmap;// 位图句柄
    int xScrn, yScrn; // 屏幕分辨率
    hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL); //为屏幕创建设备描述表
    hMemDC = CreateCompatibleDC(hScrDC);//为屏幕设备描述表创建兼容的内存设备描述表
    xScrn = GetDeviceCaps(hScrDC, HORZRES);// 获得屏幕分辨率
    yScrn = GetDeviceCaps(hScrDC, VERTRES);
    hBitmap = CreateCompatibleBitmap(hScrDC, rect.Width(), rect.Height());// 创建一个与屏幕设备描述表兼容的位图
    hOldBitmap =(HBITMAP)SelectObject(hMemDC, hBitmap);// 把新位图选到内存设备描述表中
    BitBlt(hMemDC, 0, 0, rect.Width(), rect.Height(),hScrDC,rect.left,rect.top, SRCCOPY);// 把屏幕设备描述表拷贝到内存设备描述表中
    hBitmap =(HBITMAP)SelectObject(hMemDC, hOldBitmap);//得到屏幕位图的句柄
    DeleteDC(hScrDC);//清除 
    DeleteDC(hMemDC);
    return hBitmap;// 返回位图句柄
    }
      

  3.   

    http://www.vckbase.com/document/viewdoc/?id=181