截屏程序如下: void CMy2dClusterView::SaveAsJPG(CString name) { //HWND hwnd = ::GetDesktopWindow(); //HWND hwnd = ::GetActiveWindow(); HWND hwnd = this->GetSafeHwnd(); HDC hDC = ::GetDC(hwnd);//获取屏幕DC RECT rect; ::GetClientRect(hwnd, &rect);//获取屏幕大小 HDC hDCMem = ::CreateCompatibleDC(hDC);//创建兼容DC HBITMAP hBitMap = ::CreateCompatibleBitmap(hDC, rect.right, rect.bottom);//创建兼容位图 HBITMAP hOldMap = (HBITMAP)::SelectObject(hDCMem, hBitMap);//将位图选入DC,并保存返回值 ::BitBlt(hDCMem, 0, 0, rect.right, rect.bottom, hDC, 0, 0, SRCCOPY);//将屏幕DC的图象复制到内存DC中 CImage image; image.Attach(hBitMap); //image.Save(_T("c://B.jpg"));//如果文件后缀为.bmp,则保存为为bmp格式 CString filename; filename = name+_T(".jpg"); image.Save(filename); image.Detach(); ::SelectObject(hDCMem, hOldMap);//选入上次的返回值 //释放 ::DeleteObject(hBitMap); ::DeleteDC(hDCMem); ::DeleteDC(hDC); }