2010-08-12 159 views

回答

6

These guys展示如何做到这一点:

#include <windows.h> 
#include <iostream> 
using namespace std; 

int main() 
{ 
    HANDLE hOut; 
    CONSOLE_SCREEN_BUFFER_INFO SBInfo; 
    COORD NewSBSize; 
    int Status; 

    hOut = GetStdHandle(STD_OUTPUT_HANDLE); 

    GetConsoleScreenBufferInfo(hOut, &SBInfo); 
    NewSBSize.X = SBInfo.dwSize.X - 2; 
    NewSBSize.Y = SBInfo.dwSize.Y; 

    Status = SetConsoleScreenBufferSize(hOut, NewSBSize); 
    if (Status == 0) 
    { 
     Status = GetLastError(); 
     cout << "SetConsoleScreenBufferSize() failed! Reason : " << Status << endl; 
     exit(Status); 
    } 

    GetConsoleScreenBufferInfo(hOut, &SBInfo); 

    cout << "Screen Buffer Size : "; 
    cout << SBInfo.dwSize.X << " x "; 
    cout << SBInfo.dwSize.Y << endl; 

    return 0; 
} 
3

你需要让控制台屏幕缓冲区的大小与控制台窗口相同。使用GetConsoleScreenBufferInfo,srWindow成员获取窗口大小。使用SetConsoleScreenBufferSize()设置缓冲区大小。