一个BMP文件已经完全读到内存中,怎么样自己才实现一个HBITMAP对象?

解决方案 »

  1.   

    CBitmap bmpBackground;
            bmpBackground.LoadBitmap(IDB_APPLE);
            BITMAP bitMap;
            bmpBackground.GetBitmap(&bitMap);
    这是不是你要的?
      

  2.   

    不是呀,我得意思时自己开一个buffer,把一个BMP文件读在这里buffer中,现在怎么样才能生成一个HBITMAP对象。
      

  3.   

    HBITMAP hbmp = (HBITMAP)LoadImage(0,"c:\\test.bmp",IMAGE_BITMAP,0,0,0);
      

  4.   

    谢谢楼上的各位, 现在的问题就是实现LoadImage这样的功能呀!
      

  5.   

    由于特殊的原因,必须要手工写一个LoadImage类似这样的函数.现在这个自己写的函数已经完成,24bit的图片可以正常工作,但是256色的显示出来就是不对,急死了~~~~~~
      

  6.   

    关键看你怎么读的,不会是包括文件头全部放到一个缓冲里了?
    看下面的读法
    http://www.vckbase.com/document/viewdoc/?id=674
      

  7.   

    256 色要实现调色板的,处理起来比 16、24位的bmp 复杂多了。
      

  8.   

    seu07201213(【℡】:看来,没有用.问题是,一个完整的BMP文件(256色和24位色)的图片已经在内存中了.包括头信息
    现在要生成一个HBITMAP对象.
      

  9.   

    HBITMAP CreateDIBitmap(
      HDC hdc,                  // handle to device context
      CONST BITMAPINFOHEADER *lpbmih,  // pointer to bitmap size and
                                       // format data
      DWORD fdwInit,            // initialization flag
      CONST VOID *lpbInit,      // pointer to initialization data
      CONST BITMAPINFO *lpbmi,  // pointer to bitmap color-format data
      UINT fuUsage              // color-data usage
    );