HANDLE m_hDib,HBITMAP m_hBitmap,CBitmap* m_pBitmap它们有什么区别?

 HANDLE m_hDib;     是DIB的文件句柄,是表示了设备无关位图在内存中的区域存储代号,该句柄值是整数.由(BITMAPFILEHEADER)m_hDib就可获得指向位图头文件结构指针.(BITMAPINFOHEADER)m_hDib就可获得指向位图信息头结构指针.  
HBITMAP m_hBitmap;    
    是GDI(DDB)位图的句柄,表示了设备相关位图在内存中的存储区域代码.          
CBitmap* m_pBitmap;
是GDI(DDB)位图的一个对象指针.m_pBitmap指向GDI(DDB)位图文件的开始,也就是对象*m_pBitmap的内存地址.当然DDB中没有调色板.  DDB位图有自己的SDK函数,WINDOWS中的CDC也配有显示DDB的函数,包括DDB和DIB的相互转换函数.DIB也有自己的显示函数,当然也有DIB和DDB之间的相互转换函数.  
BITMAP *m_pBmp     这是DDB(GDI)的一个结构,该结构定义了DDB的类型宽度高度颜色格式,象素位置.m_pBmp->bmBits指出了内存象素块的地址.直接对DDB的该地址指向的象素数据操作可以改变内存,但我操作好象觉得有问题,内存好象并没有被重新赋值. 
      总之,DDB和DIB的操作是有差别的,显示方法多种多样,数据指针的定位也有多种方法,但显示的位图有变形与否和速度快慢的差别.

你可能感兴趣的:(HANDLE m_hDib,HBITMAP m_hBitmap,CBitmap* m_pBitmap它们有什么区别?)