下面介绍几个用于控制台窗口操作的API函数,如下:
- GetConsoleScreenBufferInfo();
-
- GetConsoleTitle();
-
- SetConsoleScreenBufferSize();
-
- SetConsoleTitle();
-
- SetConsoleWindowInfo();
下面的示例程序用于说明此类函数的使用:
- #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编译通过。
C语言控制台窗口图形界面编程(二),布布扣,bubuko.com
C语言控制台窗口图形界面编程(二)
原文:http://www.cnblogs.com/lxl0928/p/3790454.html