witam, mam takie banalne pytanie czy istnieje możliwość napisania aplikacji pod windows, używając okna konsoli ale w innej rozdzielczości znakowej jak to jest w DOS? chodzi mi o to czy mógłbym w jakiś sposób używając rozdzielczości 1920x1080 uruchomić tryb tekstowy w którym miałbym 240 znaków w linii i 135 linii ?
0
0
OKi cos tam zrobiłem, a dokładnie ustawiłem sobie bufor dla okna, ale wielkości okna za chiny nie mogę zmienić :(
oto kod (zarymowałem linijkę, która trzeba zmienić ... cos aby zadziałało - myślałem, ze to będzie cos w stylu jak z buforem okna ...
int main(void)
{
HANDLE hStdout, hNewScreenBuffer;
COORD coordBufSize;
COORD coordWinSize;
COORD coorCursorPosition;
hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
coordBufSize.X = 240;
coordBufSize.Y = 60;
SetConsoleScreenBufferSize(hStdout, coordBufSize);
coordWinSize.X = 120;
coordWinSize.Y = 80;
//tutaj jakaś funkcja do zmiany wielkości okna - nie mogę jej znaleźć :(
//SetConsoleScreenSize - ale czegoś takiego nie ma :)
coorCursorPosition.X = 20;
coorCursorPosition.Y = 20;
SetConsoleCursorPosition(hStdout, coorCursorPosition);
system("PAUSE");
return EXIT_SUCCESS;
}
0
"zarymować" to jakieś nowe określenie na komentarz?
Tutaj jest fragment z mojej VM-ki, który służy do zmiany rozmiaru konsoli:
Procedure SetConsoleSize(const Width, Height, WinWidth, WinHeight: Integer);
Var Rect : TSmallRect;
Coord: TCoord;
Begin
Rect.Left := 1;
Rect.Top := 1;
Rect.Right := Width;
Rect.Bottom := Height;
Coord.X := WinWidth;
Coord.Y := WinHeight;
SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), Coord);
SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), True, Rect);
Window32(1, 1, WinWidth, WinHeight);
CRT.WindMaxX := WinWidth;
CRT.WindMaxY := WinHeight;
End;
Jest napisany w Pascalu, lecz właściwie niewiele będzie się różnił od tego z C++ ;)