如题??
能否给出示范代码

解决方案 »

  1.   

    给我一份吧,一起学习
    谢谢
    [email protected]
      

  2.   

    能给我一份吗?
    [email protected]
      

  3.   

    请给我一份,谢谢!
    [email protected]
      

  4.   

    能给我一份吗?
    [email protected]
      

  5.   

    能给我一份吗?
    [email protected]
      

  6.   

    能给我一份吗?
    [email protected]
      

  7.   

    呵呵,多谢大侠,我也要一份好吗。[email protected]
    谢谢。
      

  8.   

    我也要,麻烦gzshd(郁闷) 了。邮箱
    [email protected]
      

  9.   

    vckbase上有:如下
    CDC dc;
    dc.CreateDC("DISPLAY",NULL,NULL,NULL);
    CBitmap bm;
    int Width=GetSystemMetrics(SM_CXSCREEN);
    int Height=GetSystemMetrics(SM_CYSCREEN);
    bm.CreateCompatibleBitmap(&dc,Width,Height);
    CDC tdc;
    tdc.CreateCompatibleDC(&dc);
    CBitmap*pOld=tdc.SelectObject(&bm);
    tdc.BitBlt(0,0,Width,Height,&dc,0,0,SRCCOPY);
    tdc.SelectObject(pOld);
    BITMAP btm;
    bm.GetBitmap(&btm);
    DWORD size=btm.bmWidthBytes*btm.bmHeight;
    LPSTR lpData=(LPSTR)GlobalAllocPtr(GPTR,size);
    /////////////////////////////////////////////
    BITMAPINFOHEADER bih;
    bih.biBitCount=btm.bmBitsPixel;
    bih.biClrImportant=0;
    bih.biClrUsed=0;
    bih.biCompression=0;
    bih.biHeight=btm.bmHeight;
    bih.biPlanes=1;
    bih.biSize=sizeof(BITMAPINFOHEADER);
    bih.biSizeImage=size;
    bih.biWidth=btm.bmWidth;
    bih.biXPelsPerMeter=0;
    bih.biYPelsPerMeter=0;
    GetDIBits(dc,bm,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
    //bm.GetBitmapBits(size,lpData);//此函数在处理5-5-5模式的16位色下会出现颜色混乱
    static int filecount=0;
    CString name;
    name.Format("pict%04d.bmp",filecount++);
    name=m_Path+name;
    BITMAPFILEHEADER bfh;
    bfh.bfReserved1=bfh.bfReserved2=0;
    bfh.bfType=((WORD)('M'<< 8)|'B');
    bfh.bfSize=54+size;
    bfh.bfOffBits=54;
    CFile bf;
    if(bf.Open(name,CFile::modeCreate|CFile::modeWrite)){
    bf.WriteHuge(&bfh,sizeof(BITMAPFILEHEADER));
    bf.WriteHuge(&bih,sizeof(BITMAPINFOHEADER));
    bf.WriteHuge(lpData,size);
    bf.Close();
    nCount++;
    }
    GlobalFreePtr(lpData);
    if(nCount==1)
    m_Number.Format("%d picture captured.",nCount);
    else
    m_Number.Format("%d pictures captured.",nCount);
    UpdateData(FALSE);