首页 > 代码库 > C语言控制台窗口图形界面编程(二)
C语言控制台窗口图形界面编程(二)
下面介绍几个用于控制台窗口操作的API函数,如下:
[cpp] view plaincopy
- //获取控制台窗口信息
- GetConsoleScreenBufferInfo();
- //获取控制台窗口标题
- GetConsoleTitle();
- //更改指定缓冲区大小
- SetConsoleScreenBufferSize();
- //设置控制台窗口标题
- SetConsoleTitle();
- //设置控制台窗口信息
- SetConsoleWindowInfo();
下面的示例程序用于说明此类函数的使用:
[cpp] view plaincopy
- #include <stdio.h>
- #include <stdlib.h>
- #include <Windows.h>
- #include <conio.h>
- #define N 255
- int main()
- {
- HANDLE handle_out; //定义一个句柄
- CONSOLE_SCREEN_BUFFER_INFO scbi; //定义一个窗口缓冲区信息结构体
- COORD size = {80, 25}; //定义一个坐标结构体
- char strtitle[N];
- handle_out = GetStdHandle(STD_OUTPUT_HANDLE); //获得标准输出设备句柄
- GetConsoleScreenBufferInfo(handle_out, &scbi); //获得窗口缓冲区信息
- GetConsoleTitle(strtitle, N); //获得当前窗口标题
- printf("当前窗口标题为:%s\n", strtitle);
- _getch();
- SetConsoleTitle("控制台窗口操作"); //设置窗口标题为“控制台窗口操作”
- GetConsoleTitle(strtitle, N); //获得当前窗口标题
- printf("当前窗口标题为:%s\n", strtitle);
- _getch();
- SetConsoleScreenBufferSize(handle_out, size); // 重新设置缓冲区大小
- _getch();
- SMALL_RECT rc = {0, 0, 80-1, 25-1}; // 重置窗口位置和大小
- SetConsoleWindowInfo(handle_out, 1, &rc);
- CloseHandle(handle_out); //关闭标准输出设备句柄
- return 0;
- }
其中,SetConsoleScreenBufferSize函数指定新的控制台屏幕缓冲区的大小,以字符列和行为单位。指定的宽度和高度不能小于控制台屏幕缓冲区窗口的宽度和高度。指定的大小也不能小于系统允许的最小大小。这个最低取决于控制台当前的字体大小 (由用户选定)。
另外,GetConsoleTitle函数的具体实现取是否宏定义了UNICODE(与文件编码形式有关),所以在部分IDE中可能这段示例编译不通过,换一个别的编译器或IDE就行了。本样例在Code::Blocks 13.12编译通过。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。