1.如何由一个数据矩阵在内存生成一个CBitmap对象
2.如何将一个CBitmap对象拷贝到另一个CBitmap对象

解决方案 »

  1.   

    1、我不知道你的数据矩阵到底包含什么东西,是整个BMP文件的数据呢,还是去掉文件头的相关信息数据,只包括后面的图形数据,这里假设是包括所有的数据吧,假设数据放在BYTE[] bData里,大小为iSize吧。可以这样生成CBitmap对象。BITMAPINFOHEADER bih;
    memcpy(&bih,bData+sizeof(BITMAPFILEHEADER),sizeof(BITMAPINFOHEADER));CBitmap bt;
    bt.CreateBitmap(bih.biWidth,bih.biHeight,bih.biPlanes,bih.biBitCount,NULL);
    bt.SetBitmapBits(iSize-sizeof(BITMAPFILEHEADER)-sizeof(BITMAPINFOHEADER),bData+sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER));2、可以先调用原CBitmap的方法GetBitmapBits,得到原位图的图形数据,在用新CBitmap的SetBitmapBits,将得到的原位图数据赋给新的CBitmap,就实现拷贝了。我知道这种方法,不知道还有没有更好的方法。
      

  2.   

    设置一个缓存变量,将CBitmap的值赋给他,再将变量写回另一个CBitmap。