我已经加入了资源,否则也不会其他数据正确,惟独bmBits不正确?

解决方案 »

  1.   

    同意按照xuying()所说的,检查一下有没有给Bitmapinfo.bmBits分配内存空间。
      

  2.   

    The bmBits member must be a long pointer to an array of 1-byte values. 需要预先分配的内存
      

  3.   

    不对呀?首先在调用GetBitmap(&Bitmapinfo)前,图形的尺寸我们是不知道的,所以我没有办法确定数组的大小,其次即使我按照以上方法做了当调用GetBitmap(&Bitmapinfo)后,Bitmapinfo.bmBits却仍然被指向了0x00000000
      

  4.   

    bmp位图装入资源后被转换为ddb(设备相关位图)
    类CBitmap就是对一系列ddb操作的api函数进行了封装
    而API函数GetObject() 也可以用来填充BITMAP结构,但是对DDB位图和DIB位图有不同的结果,如果handle引用的是DIB位图,那么 bmBits  会被正确初始化(不考虑内存不够的问题),如果handle指向的是DDB位图,那么bmBits为空。
     建议把这句bmp.LoadBitmap(IDB_BITMAP);改为
    bmp.LoadBitmap(bmFileName)试试看
    祝你成功