想把一段内存中的数据用图像显示出来; 
          BYTE *pData; 
        pData=(BYTE *) new BYTE[200*500*3]; 
    for(int i=0;i<200*500*3;i++) 
        pData[i]=200; 
    CBitmap Bitmap; 
    Bitmap.CreateBitmap(200,500,1,24,NULL); 
    Bitmap.SetBitmapBits(200*500*3,pData); 
    CDC *cdc1; 
         cdc1=new CDC; 
         CClientDC dc(this); 
    cdc1->CreateCompatibleDC(&dc); 
    cdc1->SelectObject(&Bitmap); 
    dc.BitBlt(10,10,200,500,cdc1,0,0,SRCCOPY); 
怎么就是什么都显示不出来呢? 
谁帮偶看看怎么回事,多谢:)

解决方案 »

  1.   

    assume these statements are in a method for your View class1. make sure in your display Settings, you have selected "True Color (32bit)"
    2. try
     BYTE *pData; 
            pData=(BYTE *) new BYTE[200*500*4]; 
        for(int i=0;i<200*500*4;i++) 
            pData[i]=200; 
        CBitmap Bitmap; 
        Bitmap.CreateBitmap(200,500,1,32,NULL); 
        Bitmap.SetBitmapBits(200*500*4,pData); 
        CDC *cdc1; 
             cdc1=new CDC; 
             CClientDC dc(this); 
        cdc1->CreateCompatibleDC(&dc); 
        cdc1->SelectObject(&Bitmap); 
        dc.BitBlt(10,10,200,500,cdc1,0,0,SRCCOPY); or
     BYTE *pData; 
            pData=(BYTE *) new BYTE[200*500*4]; 
        for(int i=0;i<200*500*4;i +=4)
    {
            pData[i]=0; 
    pData[i+1]=0; 
    pData[i+2]=0xFF; 
    pData[i+3]=0; 
    }
        CBitmap Bitmap; 
        Bitmap.CreateBitmap(200,500,1,32,NULL); 
        Bitmap.SetBitmapBits(200*500*4,pData); 
        CDC *cdc1; 
             cdc1=new CDC; 
             CClientDC dc(this); 
        cdc1->CreateCompatibleDC(&dc); 
        cdc1->SelectObject(&Bitmap); 
        dc.BitBlt(10,10,200,500,cdc1,0,0,SRCCOPY); 

      

  2.   

    BYTE *pData; 
            pData=(BYTE *) new BYTE[200*500*3];  cdc1=new CDC; 
        CDC *cdc1; 
           CClientDC dc(this); 
        cdc1->CreateCompatibleDC(&dc);
        Bitmap.CreateCompatibleBitmap(&dc,200,500,1,24,NULL); 
         for(int i=0;i<200*500*3;i++) 
            pData[i]=200; 
        CBitmap Bitmap; 
            Bitmap.SetBitmapBits(200*500*3,pData); 
        cdc1->SelectObject(&Bitmap); 
        dc.BitBlt(10,10,200,500,cdc1,0,0,SRCCOPY);