Bild auf Konsole bewegen



  • Hallo ich lasse gerade ein Bild über die Konsole laufen, wenn ich d drücke dann bewegt sich das bild nach Links hin.

    Mein Problem ist jetzt halt das die am Anfang gezeichnete Bitmap noch mit eingeblendet wird 😞

    Hat wer eine Ahnung wie man die Löschen kann ?

    Das ganze sieht so bei mir aus: http://img-up.net/?up=cwn8R2mLj.JPG

    #include <windows.h>
    #include <stdio.h>
    #include <conio.h>
    #include <stdio.h>
    
    int LoadBmp2Console(char *szBitmap, int PosX, int PosY) 
    {     
      HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,szBitmap, 
                         IMAGE_BITMAP,0,0,LR_LOADFROMFILE);  
    
      BITMAP bmp;  
      GetObject(hBitmap,sizeof(bmp),&bmp);  
    
      HWND hwnd = FindWindow("ConsoleWindowClass",NULL);
      HDC hDC = GetDC(hwnd);
    
      HDC hBitmapDC = CreateCompatibleDC(hDC);  
      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 counter = 40;
    char control;
    
      int Status;
    
      Status = LoadBmp2Console("bitmap.bmp",40,20);
    
    while(1)
    {
    
         control = getch();
    
         if (control == 'd')
         {
    
                    counter = counter + 1;
                      Status = LoadBmp2Console("bitmap.bmp",counter,20);
    
         }
    
    }
    
    }
    


  • es sollte reichen ein redraw aufzurufen.

    nebenbei:
    du malst nicht ein bild auf DIE Konsole, sondern auf irgend ein Konsolenfenster.
    was passiert, wenn mehrere offen sind?
    du schreibst in die erste die du findest (kann ja auch minimiert sein)

    Sowas sollte man lassen!
    Entweder man hat eine Konsolen-Anwendung und kommt mit den einhergehenden Beschränkungen klar, oder baut gleich eine GUI-Anwendung.


Anmelden zum Antworten