unhappy
22-11-2006, 10:20
Добрый день.
Мне необходимо изменить размер буфера консольного окна.
Я нашел описание функции SetConsoleScreeBufferSize_ на http://msdn.microsoft.com
Но когда я запускаю на выполнение такой код:
If OpenConsole()
stdout.l=GetStdHandle_(#STD_OUTPUT_HANDLE)
mySize.COORD
mySize\x = 80
mySize\y = 29
SetConsoleScreenBufferSize_(stdout, mySize)
Debug(Str(GetLastError_()) )
EndIf
ничего не происходит. В дебаге я получаю код ошибки 87 (на MSDN сказано: ERROR_INVALID_PARAMETER - The parameter is incorrect.)
Вместе с тем параметр, как видно из кода, заявлен как и нужно COORD, handle окна ловится нормально потому что вот такой код, к примеру, работает нормально:
If OpenConsole()
stdout.l=GetStdHandle_(#STD_OUTPUT_HANDLE)
NewSize.SMALL_RECT
NewSize\Top = 0
NewSize\Left = 0
NewSize\Bottom=29
NewSize\Right=80
SetConsoleWindowInfo_(stdout,1,@NewSize)
EndIf
и окно (само окно, а не буфер) ресайзится нормально.
Кто сталкивался с чем-либо похожим?
Мне необходимо изменить размер буфера консольного окна.
Я нашел описание функции SetConsoleScreeBufferSize_ на http://msdn.microsoft.com
Но когда я запускаю на выполнение такой код:
If OpenConsole()
stdout.l=GetStdHandle_(#STD_OUTPUT_HANDLE)
mySize.COORD
mySize\x = 80
mySize\y = 29
SetConsoleScreenBufferSize_(stdout, mySize)
Debug(Str(GetLastError_()) )
EndIf
ничего не происходит. В дебаге я получаю код ошибки 87 (на MSDN сказано: ERROR_INVALID_PARAMETER - The parameter is incorrect.)
Вместе с тем параметр, как видно из кода, заявлен как и нужно COORD, handle окна ловится нормально потому что вот такой код, к примеру, работает нормально:
If OpenConsole()
stdout.l=GetStdHandle_(#STD_OUTPUT_HANDLE)
NewSize.SMALL_RECT
NewSize\Top = 0
NewSize\Left = 0
NewSize\Bottom=29
NewSize\Right=80
SetConsoleWindowInfo_(stdout,1,@NewSize)
EndIf
и окно (само окно, а не буфер) ресайзится нормально.
Кто сталкивался с чем-либо похожим?