在全屏模式下运行C++控制台程序

7
如何在全屏模式下运行C++控制台程序?使用VS2008

为什么不设置输出窗口的尺寸? - DumbCoder
8个回答

15

我刚试了一下 cl fullscreen.cpp

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

#pragma comment(lib, "user32")

int main()
{
    ::SendMessage(::GetConsoleWindow(), WM_SYSKEYDOWN, VK_RETURN, 0x20000000);

    std::cout << "Hello world from full screen app!" << std::endl; 
    std::cin.get();
}

不幸的是,它在第二个显示器上复制了文本 :)


1
谢谢,这个方法可行,但是Windows 7不支持将命令行窗口全屏显示! - Sudantha
如果你真的想要全屏,这很好,但在大多数情况下,你会想要窗口化的全屏。 - Andrew

9

请尝试:

#include <iostream>

using namespace std;

int main(){
system("mode 650");

system("pause");
return 0;
}

1
点赞因为它对我有用!结合使用 ShowWindow(GetConsoleWindow(), SW_MAXIMIZE); 可以获得更好的效果 - 最大化窗口。 - Val

6
#include <windows.h>

SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE),CONSOLE_FULLSCREEN_MODE,0);

如果您真的想要全屏,这是不错的选择,但在大多数情况下,您会希望使用窗口全屏模式。 - Andrew

3

现在很少有视频适配器支持全屏模式。运行cmd.exe并按下Alt+Enter键。如果出现“此系统不支持全屏模式”的消息框,则无法使用全屏模式。如果可以切换到全屏模式,则可以在main()函数中使用SetConsoleDisplayMode()。当然,您不知道客户的机器是什么样的,最好不要追求这个。


3

这是我正在使用的:

system("mode con COLS=700");
ShowWindow(GetConsoleWindow(),SW_MAXIMIZE);
SendMessage(GetConsoleWindow(),WM_SYSKEYDOWN,VK_RETURN,0x20000000);

它能够移除滚动条 :D

2
全屏窗口模式: ShowWindow(GetConsoleWindow(), SW_MAXIMIZE);

0

只需在输出之前添加此行代码(任何位置均可),

system("mode 650");

例如,

#include<bits/stdc++.h>
using namespace std;

int main(){

    system("mode 650");
    cout<<"Hey, this words are shown in full screen console! "<<endl;
    return 0;
}

0

仅供参考:您可以使用早期的DOS视频模式,例如...

asm
{
    mov     ax, 13h
    push    bp
    int     10h
    pop     bp
}

...具有320x200像素的分辨率。

但我不确定这是否适用于Windows应用程序... 可能不行!


不,它不能用于Windows应用程序。它只能在DOS中的实模式下工作。 - Joe D

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接