我将BMP文件整个读入内存块中,请问如何将该内存快转换为HBITMAP句柄。急!急!急!!!!!!

解决方案 »

  1.   

    HBITMAP hbmp;
    hbmp = (HBITMAP)::LoadImage( AfxGetInstanceHandle(), 
                                 "bitmap1.bmp",IMAGE_BITMAP,0,0, 
                                 LR_LOADFROMFILE);
      

  2.   

    或者
    CBitmap& bitmap1;
    (HBITMAP)bitmap1.GetSafeHandle(),
      

  3.   

    HBITMAP hbitmap=(HBITMAP)LoadImage(NULL,"splash.bmp",//更改你喜欢的位图文件
    IMAGE_BITMAP,lRect.Width(),lRect.Height(),
    LR_LOADFROMFILE|LR_CREATEDIBSECTION);
      

  4.   

    int SetDIBits(
      HDC hdc,                  // handle to DC
      HBITMAP hbmp,             // handle to bitmap
      UINT uStartScan,          // starting scan line
      UINT cScanLines,          // number of scan lines
      CONST VOID *lpvBits,      // array of bitmap bits 这就是在内存里面的位图数据。
      CONST BITMAPINFO *lpbmi,  // bitmap data
      UINT fuColorUse           // type of color indexes to use
    );
      

  5.   

    使用CreateBitmap()函数
    首先读取位图文件的头信息,
    并得到数据偏移的地址
    填写相应的函数参数即可
    详细情况可以参详msdn的函数使用,
    和位图的文件格式说明
      

  6.   

    SetDIBitsToDevice()
    CreateDIBitmap()