C语言控制台基础之控制台程序全屏显示。
erbi_lucifer吧
全部回复
仅看楼主
level 10
堕erbi 楼主

一楼度娘……



2012年07月18日 01点07分 1
level 10
堕erbi 楼主

01. 程序界面全屏模式:
一开使用SetConsoleDisplayMode设置全屏模式,但是不成功。GetLastError得到的结果是系统不支持这个函数(我的WIN7 64位)。于是使用API函数对黑窗体进行全屏显示。
[鲁拉]

2012年07月18日 01点07分 2
level 10
堕erbi 楼主

/********************************************************************
//得到窗体的句柄
HWND hwnd=GetForegroundWindow();
//设置标题
SetWindowTextA(hwnd,"系统信息");
//得到屏幕的长宽
int x=GetSystemMetrics(SM_CXSCREEN)
+3
00,
y=GetSystemMetrics(SM_CYSCREEN)+300;
//设置控制台的宽度和高度
char setting[30];
sprintf(setting,"mode con:cols=%d lines=%d",x,y);
system(setting);
//置顶窗口
::SetWindowPos(hwnd, HWND_TOPMOST,0,0,x+300,y+300,NULL);
//去掉标题
SetWindowRgn(hwnd, CreateRectRgn(30,30,x+1300,y+1300),true);
//移动窗体。实现全屏
MoveWindow(hwnd,-30,-40,x+300,y+300,true);
/********************************************************************
在程序的一开始放入以上代码即可……[鲁拉]

2012年07月18日 01点07分 3
level 10
堕erbi 楼主
[揉脸]重新整理一下,写个小例子“helloworld”
【源代码】
#include <stdio.h>
#include <windows.h>
//设置全屏函数,直接调用即可
void FullScreen(){
HWND hwnd=GetForegroundWindow();
int x=GetSystemMetrics(SM_CXSCREEN)+300,y=GetSystemMetrics(SM_CYSCREEN)+300;
char setting[30];
sprintf(setting,"mode con:cols=%d lines=%d",x,y);//设置控制台行数列数
system(setting);
SetWindowPos(hwnd, HWND_TOPMOST,0,0,x+300,y+300,NULL);//置顶
MoveWindow(hwnd,-10,-40,x+300,y+300,1);//移动
printf("\n\n");
}
int main()
{
FullScreen();
system("color 0A");
printf("\tHello world!");
getchar();
return 0;
}
2012年09月01日 15点09分 5
level 1
谢谢~~~~~!!!
2014年12月09日 01点12分 6
level 1
向楼主致敬!很谢谢你~期末作业又得到了更好的优化!
2015年06月03日 02点06分 7
level 1
VS2015编译错误
2016年04月04日 14点04分 8
DEV C++5.9.2没错
2017年09月13日 11点09分
level 1
并不能真正全屏啊。。楼主有没有好点的办法
2016年04月09日 04点04分 9
SetConsoleDisplayMode(hOut, CONSOLE_FULLSCREEN_MODE, 0);//全屏[鄙视]
2017年04月11日 07点04分
1