xie xie!

解决方案 »

  1.   

    我用过,但不知你什么不明白,你也可以参考Charles Petzold的《Windows 程序设计》一书
      

  2.   

    BYTE *p;
    DWORD dwLeft = 1;
    int nBitmapInfoSize = sizeof(BITMAPINFOHEADER);
    if(nBitCount <= 8) nBitmapInfoSize += dwLeft << nBitCount;//nBitCount为位图位数。
    p = new BYTE[nBitmapInfoSize];
    m_pInfo = (BITMAPINFO *)p;
    ::memset(m_pInfo, 0, nBitmapInfoSize);
    m_pInfo->bmiHeader.biSize = nBitmapInfoSize;
    m_pInfo->bmiHeader.biWidth = lWidth;
    m_pInfo->bmiHeader.biHeight = lHeight;
    m_pInfo->bmiHeader.biBitCount = (unsigned short)nBitCount;
    m_pInfo->bmiHeader.biCompression = BI_RGB;
    m_pInfo->bmiHeader.biPlanes = 1;                   //default::CreateDIBitmap(hDC, &m_pInfo->bmiHeader, CBM_INIT, m_pucData, m_pInfo, DIB_RGB_COLORS);