本系列文章改编自《C语言控制台窗口界面编程(修正版)》。本系列文章会抛弃一些原文中难懂难理解且不常用的部分,并修改了部分样例程序。只为了更加清晰地学习C语言的控制台窗口界面编程。而想要更加深入的了解本系列文章,请阅读《C语言控制台窗口界面编程(修正版)》。
《C语言控制台窗口界面编程(修正版)》下载地址:http://download.csdn.net/detail/jzqt_t/7471013
在Windows操作系统下用C语言编写控制台的窗口界面首先要获取当前标准输入和标准输出设备的句柄。通过调用函数GetStdHandle可以获取当前标准输入以及输出设备的句柄。函数原型为:
- HANDLE GetStdHandle(DWORD nStdHandle);
-
-
-
-
-
-
需要说明的是,“句柄”是Windows最常用的一个概念。它通常用来标识Windows资源(如菜单、 图标、窗口等)和设备等对象。虽然可以把句柄理解为是一个指针变量类型,但它不是对象所在的地址指针,而是作为Windows系统内部表的索引值来使用 的。调用相关文本界面控制的API函数。这些函数可分为三类。一是用于控制台窗口操作的函数(包括窗口的缓冲区大小、窗口前景字符和背景颜色、窗口标题、大小和位置等);二是用于控制台输入输出的函数(包括字符属性操作函数);其他的函数并为最后一类。通过调用CloseHandle函数来关闭输入输出句柄。
示例程序:
- #include <stdio.h>
- #include <windows.h>
- #include <conio.h>
-
- int main(int argc,char *argv[])
- {
- HANDLE handle_out;
- CONSOLE_SCREEN_BUFFER_INFO screen_info;
- COORD pos = {0, 0};
- handle_out = GetStdHandle(STD_OUTPUT_HANDLE);
- GetConsoleScreenBufferInfo(handle_out, &screen_info);
- _getch();
-
-
-
-
-
-
- FillConsoleOutputCharacter(handle_out, ‘A‘, screen_info.dwSize.X * screen_info.dwSize.Y, pos, NULL);
- CloseHandle(handle_out);
- return 0;
- }
-
-
-
-
- typedef struct _COORD
- {
- SHORT X;
- SHORT Y;
- }COORD;
-
-
- typedef struct _CONSOLE_SCREEN_BUFFER_INFO
- {
- COORD dwSize;
- COORD dwCursorPosition;
- WORD wAttributes;
- SMALL_RECT srWindow;
- COORD dwMaximumWindowSize;
- }CONSOLE_SCREEN_BUFFER_INFO;
- 还需要说明的是,虽然在C++中,iostream.h定义了cin和cout的标准输入和输出流对象。但它们只能实现基本的输入输出 操作,对于控制台窗口界面的控制却无能为力,而且不能与stdio.h和conio.h友好相处,因为iostream.h和它们是C++两套不同的输入 输出操作方式,使用时要特别注意。
- (
jzqt_t
)
C语言控制台窗口图形界面编程(一),布布扣,bubuko.com
C语言控制台窗口图形界面编程(一)
原文:http://www.cnblogs.com/lxl0928/p/3789990.html