至于这样截图吗?用BitBlt吧

解决方案 »

  1.   

    参考一下,我从我的程序里直接过来,没有修改,
    功能是把一个窗口送到剪贴板。
    如果参数是桌面窗口,应该是屏幕的
    BOOL CopyWindowToClipboard(CWnd *pWnd)
    {
    CBitmap bitmap;
    CClientDC dc(pWnd);
    CDC memDC;
    CRect rect; memDC.CreateCompatibleDC(&dc); pWnd->GetWindowRect(&rect); if(!bitmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height()))
    return FALSE; CBitmap* pOldBitmap=memDC.SelectObject(&bitmap);
    memDC.BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY);
    if(!pWnd->OpenClipboard())
    return FALSE;
    EmptyClipboard();
    SetClipboardData(CF_BITMAP,bitmap.GetSafeHandle());
    CloseClipboard(); memDC.SelectObject(pOldBitmap);
    bitmap.Detach();
    return TRUE;
    }
      

  2.   

    先取得DC(GetDC or GetWindowDC),再用GetPixel可取得一个点的颜色。
      

  3.   

    HWND hwnd=::GetDesktopWindow();//得到桌面聚丙
    HDC hdc=::GetWindowDC(hwnd);
    COLORREF color[100][100];
    for(int i=0;i<100;i++)
    for(int j=0;j<100;j++)
    color[i][j]=GetPixel(hdc,i,j);//i,j为桌面的坐标你可以用GetScreenHeigth()和GetScreenWidth()来取得桌面的具体大小。
      

  4.   

    --------------------Configuration: getpixel - Win32 Debug--------------------
    Compiling resources...
    Compiling...
    StdAfx.cpp
    Compiling...
    getpixel.cpp
    getpixelDlg.cpp
    Generating Code...
    Linking...getpixel.exe - 0 error(s), 0 warning(s)