[SOLVED]Bitmap malen



  • Ich habe ein HBITMAP in den Speicher geladen,
    und möchte es in mein Dialog zeichnen.

    Bis jetzt habe ich diesen Ansatz

    //DRAW BG
               case WM_PAINT:
    		{
    		  PAINTSTRUCT ps;
    		  BeginPaint(hwnd, &ps);
    		  DrawBitmapHere(ps.hdc, 0, 0, hFirstBg, 0, 1);
    		  EndPaint(hwnd, &ps);
    		}
    
    void DrawBitmapHere (HDC PaintDC, int x, int y, HBITMAP TheBitmap, DWORD dRap,
                          BOOL bCenter)
    {
      BITMAP BitData;
      HDC BitmapDC=CreateCompatibleDC(PaintDC);
      HBITMAP OldBitmap=SelectBitmap(BitmapDC,TheBitmap);
      if(dRap == NULL)
         dRap=SRCCOPY;
      GetObject(TheBitmap,sizeof(BITMAP),&BitData);
    
      if(bCenter)   {
         x -= BitData.bmWidth / 2;
         y -= BitData.bmHeight / 2;
      }
    
      BitBlt(PaintDC,x,y,BitData.bmWidth,BitData.bmHeight,BitmapDC,0,0,dRap);
      SelectBitmap(BitmapDC,OldBitmap);
      DeleteDC(BitmapDC);
    }
    

    Aber es tut sich garnichts 😡

    mfG



  • Ich muss die Fragestellung erweitern:
    Es klappt wenn ich
    "UpdateWindow(hwnd);" einfüge, aber dann zeigt
    er fast alles nicht mehr richtig an
    (http://img3.freeimagehosting.net/uploads/e22830d2b7.jpg)

    Wie komme ich um das UpdateWindow herum, und warum verbuggt das alles?



  • Bist Du sicher, dass das das tut ( 😃 ), was es soll?

    if(bCenter)   {
         x -= BitData.bmWidth / 2;
         y -= BitData.bmHeight / 2;
      }
    

    Evtl. mal auskommentieren.
    Des weiteren: ist 'hFirstBg' gültig?



  • Naja, ich hab es jetzt anders gemacht 🙂

    Danke trozdem


Anmelden zum Antworten