2011-03-14 52 views
0

我想知道如何在Windows 7操作系統中最大化Windows。在Windows 7中最大化控制檯窗口

我正在使用C語言。

+0

現代視頻卡不再支持這個了。按下Alt + Enter查看你的做法。 SetConsoleDisplayMode()在你的代碼中。但是不要。 – 2011-03-14 15:58:12

回答

2

你真的需要最大化窗口嗎?使用SetConsoleWindowInfo函數可以達到非常相似的效果。

+0

首先你必須調用['SetConsoleScreenBufferSize'](http://msdn.microsoft.com/en-us/library/ms686044.aspx),然後['SetConsoleWindowInfo'](http://msdn.microsoft.com/en -us /庫/ ms686125.aspx)。 – 2011-03-14 15:00:31

+1

此外,[GetLargestConsoleWindowSize](http://msdn.microsoft.com/en-us/library/ms683193.aspx)在這種情況下可能會有用。 – efotinis 2011-03-14 15:32:46

+0

GetLargestConsoleWindowSize有時不會爲您提供最大化控制檯窗口的準確信息;我最近有類似的需求,所以我寫了一個簡單的控制檯應用程序來做到這一點:https://github.com/wangzq/ConsoleMax;它是使用VS 2012 RC編寫的,因爲我只是在編寫它時才使用它,但在其他VS版本中編譯它應該相當容易,因爲唯一重要的文件是ConsoleMax.cpp。我還添加了一個功能,將控制檯窗口移動到另一臺顯示器,並根據顯示器的工作區域自行最大化。 – wangzq 2012-06-25 10:07:24

0

正如@Larry建議,你可以使用SetConsoleWindowInfo功能來實現這一點,請嘗試使用此代碼:

int main() 
{ 
    HWND hWnd; 
    SetConsoleTitle("test"); 
    hWnd = FindWindow(NULL, "test"); 
    HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); 
    COORD NewSBSize = GetLargestConsoleWindowSize(hOut); 
    SMALL_RECT DisplayArea = {0, 0, 0, 0}; 

    SetConsoleScreenBufferSize(hOut, NewSBSize); 

    DisplayArea.Right = NewSBSize.X - 1; 
    DisplayArea.Bottom = NewSBSize.Y - 1; 

    SetConsoleWindowInfo(hOut, TRUE, &DisplayArea); 

    ShowWindow(hWnd, SW_MAXIMIZE); 
    return 0; 
} 

請點擊此Thread