HBITMAP aus array erstellen



  • Hallo,

    ich möchte aus einem Datenarray, das ich als Zeiger übergeben bekomme ein HBITMAP erstellen. In diesem Array sind alle Bitmapdaten vorhanden(BitmapHeaderInfo usw.)
    Leider bekomme ich es nicht hin.

    Im Bitmap sind einfach keine Daten.(also es ist schwarz)

    Kann mir jemand evtl einen Tip geben?

    mfg



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Zeig mal Deinen aktuellen Code(-ausschnitt).



  • Moin,

    also momentan sieht der Code so aus:

    void __fastcall TVideo::FillBitmap(signed char *pBitmap )
    {
      HDC hdcscreen=GetDC(0), hdc=CreateCompatibleDC(hdcscreen);    
      ReleaseDC(0,hdcscreen);
      BITMAPINFO bi;
      BITMAPFILEHEADER *pbmfh = reinterpret_cast<BITMAPFILEHEADER *>(pBitmap);
      LPBITMAPINFOHEADER  pbmih = reinterpret_cast<LPBITMAPINFOHEADER >(pBitmap + sizeof(BITMAPFILEHEADER));
    
      bi.bmiHeader = *pbmih;
    
      signed char *pPix = &pBitmap[pbmfh->bfOffBits];
    
      HBITMAP hbm=CreateDIBSection(hdc,(BITMAPINFO*)&bi,DIB_RGB_COLORS,(void**)&pPix,NULL,NULL);
    
      if(hbm == NULL)
      {
        Application->MessageBoxA("bitmap fehler", "Error", MB_OK);
      }
      SetDIBits(
     hdcscreen,                  // handle to DC
      hbm,             // handle to bitmap
      0,          // starting scan line
      480,          // number of scan lines
      pPix ,      // array of bitmap bits
      &bi,  // bitmap data
      DIB_RGB_COLORS          // type of color indexes to use
    );
    

    mfg


Anmelden zum Antworten