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

How to change window size in C++?

本文关键字:窗口大小 C++      更新时间:2023-10-16

嗨,我必须在C++中运行一个程序,我想确保在执行程序时,它会以特定的大小/尺寸打开控制台,以便在我的程序中显示正确。我需要帮助,因为我不知道该怎么做。我正在使用开发C++ 5.42(奥威尔)。我试过使用

#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

我是初学者,因此对这些事情了解不多。

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

你应该使用

  • SetConsoleScreenBufferSize
  • SetConsoleWindowInfo

相反。

有一个例子在 http://www.cplusplus.com/forum/windows/10731/

这对

我有用:

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

如果您要更改屏幕缓冲区,则:

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>

在文件的开头。字面意思是第一行。

通过编辑本·福格特提到的功能来获得解决方案。