以带边框的全屏显示控制台,c编程

以带边框的全屏显示控制台,c编程,c,windows,C,Windows,我正在尝试创建一个小C代码来练习,我正在使用code::blocks 我的问题是:我想知道在C编程中是否有任何函数可以全屏显示控制台(不是像视频游戏那样的全屏,而是像“关闭窗口按钮”旁边的按钮那样的全屏,所以是带边框的全屏) 我已经查找并找到了一些更改窗口大小的答案,包括: system("mode con LINES = 150, COLS = 150"); 这个解决方案可能足够了,但由于好奇和改进,我希望找到一个更好的解决方案 #include <windows.h> int

我正在尝试创建一个小C代码来练习,我正在使用code::blocks

我的问题是:我想知道在C编程中是否有任何函数可以全屏显示控制台(不是像视频游戏那样的全屏,而是像“关闭窗口按钮”旁边的按钮那样的全屏,所以是带边框的全屏)

我已经查找并找到了一些更改窗口大小的答案,包括:

system("mode con LINES = 150, COLS = 150");
这个解决方案可能足够了,但由于好奇和改进,我希望找到一个更好的解决方案

#include <windows.h>
int main()
{
    CONSOLE_SCREEN_BUFFER_INFOEX info = {0};
    int width, height;
    HANDLE hConsole = NULL;

    // maximize window
    ShowWindow(GetConsoleWindow(), SW_SHOWMAXIMIZED);

    // print width/height of this window in terms of columns and rows
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    info.cbSize = sizeof(info);
    GetConsoleScreenBufferInfoEx(hConsole, &info);

    width = info.srWindow.Right+1;
    height = info.srWindow.Bottom+1;
    printf("Size of this window is %d x %d\n", width, height);

    return 0;
}

另外,很抱歉英语不好。

如果您只是需要一个Windows专用的解决方案(正如您的问题部分暗示的那样),下面的代码应该可以正常工作。其他操作系统可能会有不同的解决方案

#include <windows.h>
int main()
{
    CONSOLE_SCREEN_BUFFER_INFOEX info = {0};
    int width, height;
    HANDLE hConsole = NULL;

    // maximize window
    ShowWindow(GetConsoleWindow(), SW_SHOWMAXIMIZED);

    // print width/height of this window in terms of columns and rows
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    info.cbSize = sizeof(info);
    GetConsoleScreenBufferInfoEx(hConsole, &info);

    width = info.srWindow.Right+1;
    height = info.srWindow.Bottom+1;
    printf("Size of this window is %d x %d\n", width, height);

    return 0;
}
#包括
int main()
{
控制台屏幕缓冲区信息={0};
int宽度、高度;
句柄hConsole=NULL;
//最大化窗口
ShowWindow(GetConsoleWindow(),SW_SHOWMAXIMIZED);
//按列和行打印此窗口的宽度/高度
hConsole=GetStdHandle(标准输出句柄);
info.cbSize=sizeof(info);
GetConsoleScreenBufferInfoEx(hConsole和info);
宽度=info.srWindow.Right+1;
高度=信息窗口底部+1;
printf(“此窗口的大小为%d x%d\n”,宽度、高度);
返回0;
}

如果您只需要Windows独有的解决方案(正如您的问题部分暗示的那样),下面的代码应该可以正常工作。其他操作系统可能会有不同的解决方案

#include <windows.h>
int main()
{
    CONSOLE_SCREEN_BUFFER_INFOEX info = {0};
    int width, height;
    HANDLE hConsole = NULL;

    // maximize window
    ShowWindow(GetConsoleWindow(), SW_SHOWMAXIMIZED);

    // print width/height of this window in terms of columns and rows
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    info.cbSize = sizeof(info);
    GetConsoleScreenBufferInfoEx(hConsole, &info);

    width = info.srWindow.Right+1;
    height = info.srWindow.Bottom+1;
    printf("Size of this window is %d x %d\n", width, height);

    return 0;
}
#包括
int main()
{
控制台屏幕缓冲区信息={0};
int宽度、高度;
句柄hConsole=NULL;
//最大化窗口
ShowWindow(GetConsoleWindow(),SW_SHOWMAXIMIZED);
//按列和行打印此窗口的宽度/高度
hConsole=GetStdHandle(标准输出句柄);
info.cbSize=sizeof(info);
GetConsoleScreenBufferInfoEx(hConsole和info);
宽度=info.srWindow.Right+1;
高度=信息窗口底部+1;
printf(“此窗口的大小为%d x%d\n”,宽度、高度);
返回0;
}
只需使用此

  ShowWindow( GetConsoleWindow() , SW_MAXIMIZE);
简单地使用这个

  ShowWindow( GetConsoleWindow() , SW_MAXIMIZE);

什么操作系统?avez vous cherchéune bibliothèque appelée ncurses?该命令中的值只能通过尝试和错误找到,然后它们只适用于您的屏幕大小和(默认)控制台字体和字体大小设置。我使用的是Windows 10,我还没有搜索ncurses库(现在要搜索)在Linux控制台或xterm上,打印“\L”(ASCII表单提要)将清除屏幕,LINES和COLS环境变量将给出其维度。它也应该在OSX上工作。有了这些信息,你可以重新绘制屏幕。还有ncurses。什么操作系统?avez vous Cherchune bibliothèque appelée ncurses?该命令中的值只能通过尝试和错误找到,然后它们只适用于您的屏幕大小和(默认)控制台字体和字体大小设置。我使用的是Windows 10,我没有搜索ncurses库(现在就要做)在Linux控制台或xterm上,打印“\L”(ASCII表单提要)会清除屏幕,线条和COLS环境变量会给出它的维度。它也应该可以在OS X上工作。有了这些信息,你可以重新绘制屏幕。还有ncurses。它简单吗(足够)要在此命令后立即以行和字符形式检索“当前”维度?是的。答案已更新。欢迎使用堆栈溢出。如果您喜欢此答案,请“接受”并选中绿色复选框。其他请求应作为新问题提问。@DavidC.Rankin-fixedIs是否简单(足够)要在此命令后立即以行和字符形式检索“当前”维度?是的。答案已更新。欢迎使用堆栈溢出。如果您喜欢此答案,请“接受”并选中绿色复选框。其他请求应作为新问题提出。@DavidC.Rankin-已修复