大家帮帮忙

解决方案 »

  1.   

    Print Screen
    打开画图
    粘贴
    另存为*.jpg
      

  2.   

    HDC       hScrDC, hMemDC;      
     // 屏幕和内存设备描述表
    HBITMAP    hBitmap, hOldBitmap;   
     // 位图句柄
       //为屏幕创建设备描述表
       hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);
       //为屏幕设备描述表创建兼容的内存设备描述表
       hMemDC = CreateCompatibleDC(hScrDC);
       // 获得选定区域坐标
       // 获得屏幕分辨率
    int nWidth=GetSystemMetrics(SM_CXSCREEN);
    int nHeight=GetSystemMetrics(SM_CYSCREEN);//得到屏幕长和宽
       // 创建一个与屏幕设备描述表兼容的位图
    hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
       // 把新位图选到内存设备描述表中
    hOldBitmap =(HBITMAP)::SelectObject(hMemDC, hBitmap);
       // 把屏幕设备描述表拷贝到内存设备描述表中
    BitBlt(hMemDC, 0, 0, nWidth, nHeight,
    hScrDC, 0, 0, SRCCOPY);
    SetTextColor(hMemDC,RGB(255,0,0));
    CString str;
    CTime tt=CTime::GetCurrentTime();
    str.Format(" %d年%02d月%02d日 %02d:%02d:%02d",tt.GetYear(),
    tt.GetMonth(),
    tt.GetDay(),
    tt.GetHour(),
    tt.GetMinute(),
    tt.GetSecond());
    SetBkMode(hMemDC,TRANSPARENT);
    TextOut(hMemDC,50,50,_T(str),str.GetLength());

       //得到屏幕位图的句柄
    hBitmap = (HBITMAP)::SelectObject(hMemDC, hOldBitmap);
       //清除 
       DeleteDC(hScrDC);
       DeleteDC(hMemDC);
       // 返回位图句柄hBitmap;
       CxImage jpegImage;
       jpegImage.CreateFromHBITMAP(hBitmap);
       if(!InitPicDirectory())
       return;
       str.Format("%s\\%02d%02d%02d.jpg",
       strPicDirectory,
       tt.GetHour(),
       tt.GetMinute(),
       tt.GetSecond());
       jpegImage.Save(_T(str),CXIMAGE_FORMAT_JPG);
      

  3.   

    其中cximage是从codeproject上下载的一个库,很有名,很有用的,
    initpicdirectory是我编的一个函数,你就不必用了。思路很简单,在内存中创建位图,然后将指定区域的内存位图存为jpg格式的,不但是jpg,很多种格式都可以。强烈推荐。
      

  4.   

    因为#define CXIMAGE_SUPPORT_JPG 0
      

  5.   

    http://www.codeproject.com/bitmap/cximage.asp