zoukankan      html  css  js  c++  java
  • Wince6.0 截图函数,BMP格式

    void OnScreenSave()

    {

    HDC  hScrDC, hMemDC;         

        int  width, height; 

    BYTE  *lpBitmapBits = NULL; 

        hScrDC = CreateDC(_T("DISPLAY"), NULL, NULL, NULL);

        width = GetDeviceCaps(hScrDC, HORZRES);

        height = GetDeviceCaps(hScrDC, VERTRES);

        hMemDC = CreateCompatibleDC(hScrDC);

        BITMAPINFO RGB24BitsBITMAPINFO; 

        ZeroMemory(&RGB24BitsBITMAPINFO, sizeof(BITMAPINFO));

        RGB24BitsBITMAPINFO.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);

        RGB24BitsBITMAPINFO.bmiHeader.biWidth = width;

        RGB24BitsBITMAPINFO.bmiHeader.biHeight = height;

        RGB24BitsBITMAPINFO.bmiHeader.biPlanes = 1;

        RGB24BitsBITMAPINFO.bmiHeader.biBitCount = 24;

        HBITMAP directBmp = CreateDIBSection(hMemDC, (BITMAPINFO*)&RGB24BitsBITMAPINFO, 

    DIB_RGB_COLORS, (void **)&lpBitmapBits, NULL, 0);

    HGDIOBJ previousObject = SelectObject(hMemDC, directBmp);

    BitBlt(hMemDC, 0, 0, width, height, hScrDC, 0, 0, SRCCOPY);

    BITMAPFILEHEADER bmBITMAPFILEHEADER;

    ZeroMemory(&bmBITMAPFILEHEADER, sizeof(BITMAPFILEHEADER));

    bmBITMAPFILEHEADER.bfType = 0x4d42;  //bmp  

        bmBITMAPFILEHEADER.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);

        bmBITMAPFILEHEADER.bfSize = bmBITMAPFILEHEADER.bfOffBits + ((width*height)*3); ///3=(24 / 8)

    char g_chPhotoPathName[50];

    char g_chPhotoName[30];

    FILE *mStream = NULL;

    COleDateTime tmTime = COleDateTime::GetCurrentTime();

    sprintf(g_chPhotoName, "%d%d%d%d%d%d.bmp", tmTime.GetYear(), tmTime.GetMonth(), tmTime.GetDay(),tmTime.GetHour(),tmTime.GetMinute(),tmTime.GetSecond());

    sprintf(g_chPhotoPathName, "//NAND//screen//%s", g_chPhotoName);

    CreateDirectory(_T("//NAND//screen"), NULL);

    if((mStream = fopen(g_chPhotoPathName,"wb")))

    {  

    fwrite(&bmBITMAPFILEHEADER, sizeof(BITMAPFILEHEADER), 1, mStream);

    fwrite(&(RGB24BitsBITMAPINFO.bmiHeader), sizeof(BITMAPINFOHEADER), 1, mStream);

    fwrite(lpBitmapBits, 3*width*height, 1, mStream);

    fclose(mStream);

    }

    else

    {

    MessageBox(NULL,_T("创建图像文件失败"),_T("错误"),MB_OK);

    return;

    }

    //delete

    DeleteObject(hMemDC);

    DeleteObject(hScrDC);

    DeleteObject(directBmp);

    DeleteObject(previousObject);

    }

  • 相关阅读:
    Python关键字
    tomcat中 server.xml
    Java web.xml笔记
    HTML标签笔记
    jsp笔记
    Ubuntu 安装 chrome
    隐藏文件管理器左侧导航栏的部分内容
    virtualbox中设置u盘启动
    剑指Offer题解索引
    当你在浏览器地址栏输入一个URL后回车,将会发生的事情?
  • 原文地址:https://www.cnblogs.com/ezhong/p/2171490.html
Copyright © 2011-2022 走看看