Größe der Dos Konsole beim starten festlegen
-
Guck mal in die FAQ->Improved Console... Da solltest du fündig werden
-
Du könntest auch (wenn du ja den Quelltexthast) die window(,,,); Funktion nehmen.
-
wie mache ich das nun am besten? Ich will egal wo das Prog gestartet wird, immer den Vollbild Modus haben...
-
Hä? Du hast doch 2 Antworten bekommen! Was willst du denn noch?
-
iggi13 schrieb:
wie mache ich das nun am besten? Ich will egal wo das Prog gestartet wird, immer den Vollbild Modus haben...
Improved Console, siehe FAQ
MfG SideWinder
-
Hey Jungs bleibt doch einfach mal locker hier, wenn alle die hier dumme Bemerkungen machen, einfach was posten, dass man weiter kommt, aber einfach mal was erzählen,wa?
Hab mir die Improve angeschaut, aber kann mir ein kompetenter hier mal erklären wie das genau geht?
-
faq lesen->einbindern->compilieren->starten->freuen dass alles geht
-
super was da inner faq steht, da werde ich auf die andere Seite weiter geleitet, und so wie ich die datei so sehe is das c++, kann sich ma bitte einer die Mühe machen und das für ein c noob erklären?
-
Du müsstest dir nur "Getting Started" auf dieser verlinkten Seite durchlesen, aber du hast recht, das ist für C++.
Für C reicht es allerdings die nötigen Funktionen aus dem Quellcode zu übernehmen. Allerdings brauchst du für Vollbild das neueste Platform SDK und für das Setzen der Größe muss ich etwas weiter ausholen.
Da gibts einen Puffer und ein Fenster davor - beide haben eine Größe. Folgende Bedingung gilt: Weder die X-Größe des Fensters noch die Y-Größe des Fensters darf die Puffergröße überschreiten.
Also ist es etwas kompliziert die Größe zu verändern. Deswegen hat es sich als besser herausgestellt die Konsole überhaupt auf ein Minimum zu verkleinern und dann wieder zu vergrößern (sooft ändert sich die Größe der Konsole dann ja auch wieder nicht...).
Code-Example:
void setWndSize (int x, int y) { zeroWndSize(); COORD bufSize; bufSize.X = min(x,getMaxWndSizeX()); bufSize.Y = min(y,getMaxWndSizeY()); SetConsoleScreenBufferSize(hConsoleOutput,bufSize); SMALL_RECT wndSize; wndSize.Top = 0; wndSize.Left = 0; wndSize.Right = min(x,getMaxWndSizeX()) - 1; wndSize.Bottom = min(y,getMaxWndSizeY()) - 1; SetConsoleWindowInfo(hConsoleOutput,TRUE,&wndSize); } // Hilfsfunktionen: int getMaxWndSizeX () { return GetLargestConsoleWindowSize(hConsoleOutput).X; } int getMaxWndSizeY () { return GetLargestConsoleWindowSize(hConsoleOutput).Y; } void Console::zeroWndSize () { COORD bufSize; bufSize.X = 1; bufSize.Y = 1; SetConsoleScreenBufferSize(hConsoleOutput,bufSize); SMALL_RECT wndSize; wndSize.Top = 0; wndSize.Left = 0; wndSize.Right = 0; wndSize.Bottom = 0; SetConsoleWindowInfo(hConsoleOutput,TRUE,&wndSize); }
Da müsste jetzt soweit ich das sehe nur noch überall "hConsoleOutput" durch "GetStdHandle(STD_OUTPUT_HANDLE)" ersetzt werden und dann setWndSize(xsize,ysize) aufgerufen werden.
MfG SideWinder
-
ok sidewinder war vor mir....