Grafiken / Zeichnen in der Konsole

Prophet05

Erfahrenes Mitglied
Also ich benutzte den DevC++ 4 Compiler und ich würde gerne in einer meiner Anwendungen zeichnen. Solche sachen wie Linien und Kreise oder einfach nur einzelne Pixel einfärben. Die Funktionen könnte ich mir auch selbst Schreiben aber ich kriege es nicht hin auf einzelne Pixel zuzugreifen und diese Einzufärben.

Ich weiß die einfachste lösung wäre es einfach eine Windows Anwendung zu schreiben habe ich auch schon gemacht, aber es muss doch auch auf DOS-Ebene gehen.
 
moin


Das ist ganz einfach.
Du holst dir das Handle deines Dosfensters, erstllest nen passenden DC und schon kanns losgehen.


mfg
umbrasaxum
 
moin


Naja ich war dann doch so frei dir mal ein Beispiel zu schreiben.
Code:
#include <windows.h>
#include <iostream>

void main(void)
{

	SetConsoleTitle("Zeichnen in Dos");
	HWND hWnd = FindWindow(NULL, "Zeichnen in Dos");
	
	HDC hDC = GetDC(hWnd);
	{
		//Pixel setzen
		SetPixel(hDC, 10, 10, RGB(255,255,255));
	}
	ReleaseDC(hWnd, hDC);
	DeleteDC(hDC);

	std::cin.get();
}

Ansonsten benutz die Suchfunktion solche Sachen wurden hier schon ein paar mal behandelt! Auch wie man Bilder in die Konsole packt.


mfg
umbrasaxum
 
Hi,

Ich habe dein beispiel mal getestet aber gibt mir diese Fehelrmeldung aus:

Compiler and Linker output error:
C:\DOKUME~1\LOKALE~1\Temp\ccAZbaaa.o(.text+0x64):untitl~1.cpp: undefined reference to `SetPixel@16'
C:\DOKUME~1\LOKALE~1\Temp\ccAZbaaa.o(.text+0x83):untitl~1.cpp: undefined reference to `DeleteDC@4'

Da ich es sowieso nicht ganz verstanden habe. Wusste ich natürlich auch nicht wie ich den Fehelr beheben kann.

mfg
Prophet05
 
moin


Da muss der jemand helfen der auch DEV C nutzt, es wird ne lib nicht eingebunden sein die benötigt wird.


mfg
umbrasaxum
 
Dazu must du die libgdi32.a mit dazulinken:
Unter Projektoptionen->Parameter->Linker wählst du aus dem lib Verzeichnis von DevCpp einfach die o.g. lib aus.

Daniel
 
Achja man kann sich das mit dem FindWindow sparen, denn mit GetConsoleWindow () kann man sofort den HWND des zugehörigen Konsolenfensters erhalten.

Daniel
 
Zurück