MFC - CBitmap BitBlt
-
The below given function displays nothing. Why...? How could I correct the problem..? void CImageProcessorView::OnDraw(CDC *theDC) { CBitmap Bitmap; Bitmap.CreateBitmap(100,100,1,24,NULL); BITMAP bm; Bitmap.GetObject(sizeof(BITMAP),&bm); BYTE * pData=(BYTE *)new BYTE[bm.bmHeight *bm.bmWidthBytes ]; // the 24 bit bitmap buffer for (int y=0;y < bm.bmHeight;y++){ for(int x=0;x < bm.bmWidth;x++){ pData[x*3+0+y*bm.bmWidthBytes]=0; pData[x*3+1+y*bm.bmWidthBytes]=0; pData[x*3+2+y*bm.bmWidthBytes]=255; // fill red in buffer } } Bitmap.SetBitmapBits(bm.bmHeight *bm.bmWidthBytes ,pData); CDC MemDC; MemDC.CreateCompatibleDC(theDC); CBitmap *pOldBitmap=MemDC.SelectObject(&Bitmap); theDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY); MemDC.SelectObject(pOldBitmap); delete [] pData; } Rajesh Rajan Pankapattu
-
The below given function displays nothing. Why...? How could I correct the problem..? void CImageProcessorView::OnDraw(CDC *theDC) { CBitmap Bitmap; Bitmap.CreateBitmap(100,100,1,24,NULL); BITMAP bm; Bitmap.GetObject(sizeof(BITMAP),&bm); BYTE * pData=(BYTE *)new BYTE[bm.bmHeight *bm.bmWidthBytes ]; // the 24 bit bitmap buffer for (int y=0;y < bm.bmHeight;y++){ for(int x=0;x < bm.bmWidth;x++){ pData[x*3+0+y*bm.bmWidthBytes]=0; pData[x*3+1+y*bm.bmWidthBytes]=0; pData[x*3+2+y*bm.bmWidthBytes]=255; // fill red in buffer } } Bitmap.SetBitmapBits(bm.bmHeight *bm.bmWidthBytes ,pData); CDC MemDC; MemDC.CreateCompatibleDC(theDC); CBitmap *pOldBitmap=MemDC.SelectObject(&Bitmap); theDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&MemDC,0,0,SRCCOPY); MemDC.SelectObject(pOldBitmap); delete [] pData; } Rajesh Rajan Pankapattu