CDC* pdc=GetDC();
CDC dcmem;
dcmem.CreateCompatibleDC(pdc);
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap(pdc,500,200); int x=500;
int y=200; CBitmap *pOldBit=dcmem.SelectObject(&MemBitmap); dcmem.PatBlt( 0,0,x,y,WHITENESS ); BITMAPINFO bminfo;

ZeroMemory(&bminfo,sizeof(BITMAPINFO));

GetDIBits(pdc->m_hDC,(HBITMAP)(MemBitmap.m_hObject),0,0,NULL,&bminfo,DIB_RGB_COLORS);
在下面对bminfo的各个成员挨个赋值就可以,这样获得就不好使,这是怎么回事呀?

解决方案 »

  1.   

    GetDIBits(pdc->m_hDC,(HBITMAP)(MemBitmap.m_hObject),0,0,NULL,&bminfo,DIB_RGB_COLORS);
    ===========
    你用GetDIBits想得到什么啊?接收数据的缓冲区你写NULL,你希望得到什么呢?
      

  2.   

    不是“如果此参数为NULL,那么函数将把位图的维数与格式传递给lpbi参数指向的BITMAPINFO结构”吗?
    http://baike.baidu.com/view/1080378.htm?fr=ala0_1
    那应该怎么样呀?
      

  3.   

    想获得位图的格式之类的,直接用GetObject就行了。