wielkosc okna consoli w windowsie.

0

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

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++ ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1