Bitmap nach scrollen weg



  • Hallo,
    ich lasse in der console ein bitmap anzeigen, aber wenn ich in der console jetzt nach oben oder nach unten scolle, ist das bild weg.(ich meine, nachdem ich wieder zurück gescrollt habe) Wisst ihr vielleicht wie ich das verhindern kann?

    #include <windows.h>
    #include <stdio.h>
    //#pragma comment(lib,"gdi32.lib")
    
    int LoadBmp2Console(char *szBitmap, int PosX, int PosY)
    {    
      HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,szBitmap,
                         IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
      if (!hBitmap) return 1;
    
      BITMAP bmp;
      GetObject(hBitmap,sizeof(bmp),&bmp);
    
      HWND hwnd = FindWindow("ConsoleWindowClass",NULL);
      if (!hwnd) return 2;
    
      HDC hDC = GetDC(hwnd);    
      if (!hDC) return 3;
    
      HDC hBitmapDC = CreateCompatibleDC(hDC);
      if (!hBitmapDC) return 4;
    
      SelectObject(hBitmapDC,hBitmap);
    
      BitBlt(hDC,PosX,PosY,bmp.bmHeight,bmp.bmWidth,hBitmapDC,0,0,SRCCOPY);  
    
      DeleteObject(hBitmap);
      ReleaseDC(hwnd,hBitmapDC);
      ReleaseDC(hwnd,hDC);
    
    return 0;
    }
    
    int main()
    {      
      int Status = LoadBmp2Console("bitmap.bmp",10,10);
      if(Status!=0)printf("Fehler: %i",Status);  
    
      getchar();  
      return 0;
    }
    

    (ich glaub der code kommt hier aus dem Forum 😃 )



  • Du könntest nach jedem Scrollen, nach jeder Änderung der Fenstergröße und -position BitBlt mit gültigem hDC und hBitmapDC aufrufen.

    MFG



  • kann ich nicht öffnen den code - complir den und funtz nich :(:P



  • Die Konsole ist TEXTBASIERT, da gibts einfach keine brauchbaren Bitmaps. Ja vielleicht ist es durch irgendwelche Hacks möglich dort welche anzuzeigen, aber warum und wieso soll das gut sein? Für nichts.

    Wenn du Grafik und Bitmaps haben will, dann lerne statt solchen Code (den du wahrscheinlich ohnehin kopiert und nicht verstanden hast) lieber WinAPI-Programmierung.

    MfG SideWinder



  • Ich empfehle ASCII Art 😃


Anmelden zum Antworten