Ladebalken in Konsole
-
dann nimm doch den GDI mit SetPixel(HDC,int x, int y, RGB(r,g,b));
da zeichnest dann einfach ein rechteck oder nen kreis
-
SetPixel(HDC,int x, int y, RGB(r,g,b));
was soll denn HDC sein, welchen Wert muss ich denn da übergeben?
-
schau doch auf msdn
-
MSDN = Microsoft
daraus folgere ich, dass der Code nur mit Vc++ läuft?
Und ich halte nichts von Microsoft. Ich kompilier nur mit dem gcc.
-
nicht VC++ sondern WinAPI. Die müsste bei deinem Compiler auch enthalten sein. Aber es funktioniert trotzdem nur unter Windows. Die einzige portable Lösung ist wohl nur die mit den Punkten.
-
ich nehm ganz einfach BigBrothers Lösung
-
um nochmal auf setPixel zurückzukommen:
kann man da Text drüber schreiben ohne dass die BG Farbe verschwindet? Und könnt ihr mir nicht einfach schreiben was HDC ist? Das ist für mich am einfachsten, weil ich mit Microsoft ne klar komme. Ich weis ja noch nicht mal was ich einbinden muss, geschweige denn den namespace kenn ich ja auch ne. Also wie muss ich das Aufrufen was soll das HDC sein, welche Lib und welcher namespace, for dummies.
-
naja kenn mich nur im windows aus! bist ja auch im dos win32 forum
naja drüberschreiben auf bg ist halt sone sache, musst dir selbst eine schriftartmachen, und mit ConsolenBuffer arbeiten.#include windows.h HDC hdc=GetDC(GetConsoleWindow());
Consolen zeugs:
http://msdn.microsoft.com/en-us/library/ms682073%28VS.85%29.aspxSetPixel erklärung:
http://msdn.microsoft.com/en-us/library/dd145078%28VS.85%29.aspxfür set Pixel:
Minimum supported client Windows 2000 Professional
Minimum supported server Windows 2000 Server
Header Wingdi.h (include Windows.h)
Library Gdi32.lib
DLL Gdi32.dll
-
Naums schrieb:
ich nehm ganz einfach BigBrothers Lösung
Würde ich auch machen. Wenn du für ein anderes Ziel als Windows übersetzt, kannst du ja immer noch ein Zeichen < 128 statt dem 219er festlegen.
Übrigens bin ich nicht sicher, ob das 219er-Zeichen in allen Zeichensätzen so aussieht, wie du erwartest. Kannst du testen, indem du vor dem Programm-Aufruf sagst
chcp 850
, oderchcp 1252
, oder ...Wenn du einen bestimmten Zeichensatz für dein Programm haben willst, kannst du ihn am Anfang von deinem Programm festlegen lassen:
http://msdn.microsoft.com/en-us/library/ms686013(VS.85).aspxMit GetConsoleCP() könntest du dir davor auch noch den vorigen Zeichensatz merken, und am Programmende wieder zurücksetzen, um den Benutzer nicht zu verwirren.
-
ja ich bin hier bei Win32, programmiere sonst aber auch für Linux, aber das Projekt wird nur für Windows übersetzt.
-
das einfachste wird sein wenn du eine kleiner graphik engine die auf dem gdi basiert schreibts. mit set pixel ist eh alles möglich, so in der art wie damals auf dem 16bit dos.
buchstabe a zb
A[24]= {0,0,1,0,0 0,1,0,1,0 1,0,0,0,1 1,1,1,1,1 1,0,0,0,1}
wäre ein 5x5 pixel grosses A.
vielleicht so darstellen:
der code muss nicht genau so funktionieren hab ihn ohne zu testen geschrieben.int i=0; while(i<25){ if(A[i]==1){ if(i%5==0&&i>0){ // wenn rest 0 nächste zeile posY+=1; // y eins runter posX-=5; // x auf null aloso wieder ganz nach links zurück } SetPixel(hDC,posX,posY,RGB(red,green,blue)); //die einsen des A ausdrücken }else{ SetPixel(hDC,posX,posY,RGB(red,green,blue)); //die nullen des A ausdrücken } i++; }