2014-01-16 85 views
0

嗨我必須在C++中運行程序,並且我想確保程序何時執行,它會以特定的大小/尺寸打開控制檯,以便我的程序中的顯示是正確的。我需要幫助,因爲我不知道該怎麼做。我正在使用Dev C++ 5.42(Orwell)。我試着用如何在C++中更改窗口大小?

#include<iostream> 
#include<windows.h> 

using namespace std; 

SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); 

int main(){ 
    cout<<"Hello World"; 
} 

,並得到了一個錯誤

[Error] expected constructor, destructor, or type conversion before '(' token 

我是一個初學者,所以我不很瞭解這些事情。

+0

我們需要看到圍繞該行的更多代碼。 – Shoe

+0

您是否包含該功能的''?並且控制檯窗口不會太熱情地被調整超出其最大尺寸,因此請牢記這一點。 – chris

+1

如果您試圖更改* console *窗口的大小,請使用['SetConsoleDisplayMode()'](http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms686028%28v= vs.85%29.aspx) –

回答

4

該功能對於沒有窗口的控制檯應用程序沒有用(除非他們使用CreateWindow API創建了一個窗口,這對於控制檯應用程序來說是非典型的)。相反,他們的輸出連接到csrss,它具有窗口。

您應該使用

  • SetConsoleScreenBufferSize
  • SetConsoleWindowInfo

代替。

有在http://www.cplusplus.com/forum/windows/10731/

3

一個例子這工作對我來說:

HWND hwnd = GetConsoleWindow(); 
if(hwnd != NULL){ MoveWindow(hwnd ,340,550 ,680,150 ,TRUE); } 
2

如果您尋找改變屏幕緩衝區則:

HANDLE buff = GetStdHandle(STD_OUTPUT_HANDLE); 
COORD sizeOfBuff; 
sizeOfBuff.X=150; 
sizeOfBuff.Y=100; 
SetConsoleScreenBufferSize(buff,sizeOfBuff); 

要調整屏幕使用DaveWalley的解決方案。

或者你可以做到這一點(僅適用於調整)

HWND hwnd = GetConsoleWindow(); 
if(hwnd != NULL){ SetWindowPos(hwnd ,0,0,0 ,1000,300 ,SWP_SHOWWINDOW|SWP_NOMOVE); } 

一定要包括:

#define _WIN32_WINNT 0x0502 
#include<windows.h> 

在文件的開頭。直譯爲第一行。

通過考慮Ben Voigt提到的功能得到了解決方案。