Fragen zu Improved Console
-
Hallo
Ich hätte noch 2 Fragen zu Improved Console:1. Ist es möglich nur Teile der Konsole zu löschen (clear) also mit Angaben der 2 Positionen zB und dazwischen wird dann gelöscht.
2. Wie kann ich die Konsole wieder "markieren". Wenn ich con.hide(); con.show(); mache ist Konsole danach nicht mehr markiert und um eingaben zu machen muss sie erst wieder mit der Maus ausgewählt werden...con.restore funktioniert leider nicht.Danke für eure Hilfe
Gruß Zaus
-
Ich kenne keine Funktion, die das übernimmt...
Schreibe dir eine Funktion, die den Bereich mit Leerzeichen füllt...
Sieht ungefähr so aus (habs ausm Kopf ohne Garantie geschrieben^^):
void clearEx(int x, int y, int w, int h) { //Jede Zeile durchlaufen for(int iy = y; iy < y+h; iy++) { // An Position springen gotoxy(x, iy); //Jede Spalte durchlaufen for(int ix = x; ix < x+w; ix++) { // Leerzeichen ausgeben cout << " "; } } }
Mit GetConsoleWindow() kannst du das Handle der Konsole herausfinden. Mit SetFocus() kannst du einem Fenster/Control den Fokus geben.
SetFocus(GetConsoleWindow());
-
Das sieht mir sehr unperformant aus. Die IC unterstützt das so leider noch nicht, du kannst aber direkt die WinAPI verwenden. Mit FillConsoleOutputCharacter() wirst du das erledigen können (musst du allerdings für jede Zeile deines Rechtecks aufrufen).
Warum wird dir beim Studieren von http://msdn.microsoft.com/en-us/library/ms682663(VS.85).aspx gleich auffallen
MfG SideWinder
-
Das Löschen hab ich hinbekommen, das mit dem Fokus allerdings nicht.
WederSetFocus(GetConsoleWindow());
noch
ShowWindow(GetConsoleWindow(), SW_SHOW)
haben etwas bewirkt.
-
Zaus schrieb:
Das Löschen hab ich hinbekommen, das mit dem Fokus allerdings nicht.
WederSetFocus(GetConsoleWindow());
noch
ShowWindow(GetConsoleWindow(), SW_SHOW)
haben etwas bewirkt.
Möchtest du dich nicht eventuell bedanken?
-
Samyboy schrieb:
Möchtest du dich nicht eventuell bedanken?
Vielen Dank, hast mir sehr geholfen, desweiteren darfst du gerne einen Blick ins Ausgangsposting werfen.
Wäre nett, wenn noch jemand ne Idee hätte wie ich die Konsole wieder markieren und in den Vordergrund holen kann.