开发者

Increasing the size of console output display

Can we change/increase the size of console output to view large size of data in 开发者_StackOverflow社区console application at once?


There seem to be different ways to Rome:

  1. This should be the recommended way I would think, cause the name says it all: GetConsoleWindow as is demonstrated here.

  2. A quick hack might be the windows API function SendInput. If you simulate Alt+Enter, you could probably fullscreen the active window.

  3. Here are some propositions using API calls from user32.dll


Check out the SetConsoleScreenBufferInfoEx API. It takes a CONSOLE_SCREEN_BUFFER_INFOEX as input and that has a dwSize member which contains the size of the console screen buffer, in character columns and rows.

MSDN for SetConsoleScreenBufferInfoEx Function: http://msdn.microsoft.com/en-us/library/ms686039(v=VS.85).aspx


I once used a small hack that is first setting the console's output buffer and then trying to find the console window and resize it. It worked well on XP, I never tested it on newer Windows versions.

HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
SMALL_RECT sr;
sr.Top  = 0;
sr.Left = 0;
sr.Bottom = 10;
sr.Right  = 79;
SetConsoleWindowInfo(h, TRUE, &sr);
TCHAR title[512];
GetConsoleTitle(title, 512);
HWND hWnd = FindWindow(NULL, title);
if(hWnd != NULL) {
    HWND hWndInsertAfter = NULL;
    UINT nFlags = SWP_NOSIZE | SWP_NOZORDER;
#if 0   // Don't move?
    nFlags |= SWP_NOMOVE;
#endif
    SetWindowPos(hWnd, hWndInsertAfter , 40, 350, 0, 0, nFlags);
    SetForegroundWindow(hWnd);
}


If you are using the command prompt window, right click it's label on the task bar and click the Properties option.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜