如何在C ++中更改窗口大小?

时间:2014-01-16 05:34:08

标签: c++ windows winapi user-interface

您好我必须在C ++中运行程序,我想确保程序执行时,它以特定的大小/尺寸打开控制台,以便我的程序中的显示是正确的。我需要帮助,因为我不知道该怎么做。我正在使用Dev C ++ 5.42(Orwell)。我尝试使用

#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

我是初学者,因此我对这些事情知之甚少。

3 个答案:

答案 0 :(得分:7)

该功能对于没有窗口的控制台应用程序是无用的(除非他们使用CreateWindow API创建一个,这对于控制台应用来说是非典型的)。相反,他们的输出连接到csrss,它有窗口。

您应该使用

  • SetConsoleScreenBufferSize
  • SetConsoleWindowInfo

代替。

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

有一个例子

答案 1 :(得分:3)

这对我有用:

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

答案 2 :(得分:1)

如果您正在寻找更改屏幕缓冲区,请:

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提到的功能来解决问题。