我现在想做一个试验:把一个COLORREF的二维数组转换成CBitmap,并且输出到屏幕上

解决方案 »

  1.   

    DWORD dwBmpLineZise = (((数组宽度 * 位图位数 + 31)/32)*32/8;
    DWORD dwBmpSize = dwBmpLineZise * 数组高度;
    BYTE *pBitByte = new BYTE[dwBmpSize];
    int nBytePos;
    int nClrRefPos
    for(int i = 0; i < 数组高度; i ++)
    {
        for(int j = 0; j < 数组宽度;j ++)
        {
    //24位位图
            nBytePos = i * dwBmpLineZise + j * 3;
            nClrRefPos = i * 高度 + j;
            pBitByte[nBytePos] = (数组[nClrRefPos] & 0xff0000)>>16;
            pBitByte[nBytePos + 1] = (数组[nClrRefPos] & 0x00ff00)>>8;
            pBitByte[nBytePos + 2] = (数组[nClrRefPos] & 0x0000ff;
    //
        }
    }
    CBitmap bmp;
    bmp.CreateBitmap(数组宽, 数组高, nPlanes, nBitcount, pBitByte);
      

  2.   

    http://www.codeproject.com/useritems/using_get_set_bitmapbits.asp