Bitmaps in Konsole einfügen
-
Ich wollte mal wissen ob es möglich ist eine
selbstgemachte Paint "Skizze" in eine Konsolenanwendung einzufügen.
-
Nein, das ist nicht möglich.
-
Soweit ich weiß, gibt es eine Möglichkeit, dir einen DC deines Konsolenfensters zu besorgen und dort reinzumalen. (aber ich habe keine Ahnung, wie das funktioniert - irgendwo im Konsolen-Board müsste etwas dazu stehen)
-
CStoll schrieb:
Soweit ich weiß, gibt es eine Möglichkeit, dir einen DC deines Konsolenfensters zu besorgen und dort reinzumalen. (aber ich habe keine Ahnung, wie das funktioniert - irgendwo im Konsolen-Board müsste etwas dazu stehen)
Tatsache, das geht. Man kann sich mit 'GetDC(GetConsoleWindow())' unter Windows einen bemalbaren Handle der Konsole besorgen. Aber das sind OS-spezifische Funktionen.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
#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; }
Bitteschön Bei Dev C++ musst du allerdings die gdi32.lib linken, also:
Unter dem Menüpunkt "Projekt Optionen"-->"Linker Optionen" das Wort "-lgdi32" (ohne "") eingeben.have Fun MFG Mikey
-
Es ist mit der Funktion CreateConsoleScreenBuffer und einem geheimen Flag möglich.