博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言控制台窗口图形界面编程(二)
阅读量:4314 次
发布时间:2019-06-06

本文共 1319 字,大约阅读时间需要 4 分钟。

下面介绍几个用于控制台窗口操作的API函数,如下:

[cpp] 
  1. //获取控制台窗口信息  
  2. GetConsoleScreenBufferInfo();  
  3.   
  4. //获取控制台窗口标题  
  5. GetConsoleTitle();  
  6.   
  7. //更改指定缓冲区大小  
  8. SetConsoleScreenBufferSize();  
  9.   
  10. //设置控制台窗口标题  
  11. SetConsoleTitle();  
  12.   
  13. //设置控制台窗口信息  
  14. SetConsoleWindowInfo();  

 

       下面的示例程序用于说明此类函数的使用:

[cpp] 
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <Windows.h>  
  4. #include <conio.h>  
  5. #define N 255  
  6.   
  7. int main()  
  8. {  
  9.     HANDLE handle_out;  //定义一个句柄  
  10.     CONSOLE_SCREEN_BUFFER_INFO scbi;    //定义一个窗口缓冲区信息结构体  
  11.     COORD size = {80, 25};      //定义一个坐标结构体  
  12.     char strtitle[N];  
  13.     handle_out = GetStdHandle(STD_OUTPUT_HANDLE);   //获得标准输出设备句柄  
  14.     GetConsoleScreenBufferInfo(handle_out, &scbi);  //获得窗口缓冲区信息  
  15.     GetConsoleTitle(strtitle, N);   //获得当前窗口标题  
  16.     printf("当前窗口标题为:%s\n", strtitle);  
  17.     _getch();  
  18.     SetConsoleTitle("控制台窗口操作");     //设置窗口标题为“控制台窗口操作”  
  19.     GetConsoleTitle(strtitle, N);           //获得当前窗口标题  
  20.     printf("当前窗口标题为:%s\n", strtitle);  
  21.     _getch();  
  22.     SetConsoleScreenBufferSize(handle_out, size);   // 重新设置缓冲区大小  
  23.     _getch();  
  24.     SMALL_RECT rc = {0, 0, 80-1, 25-1};     // 重置窗口位置和大小  
  25.     SetConsoleWindowInfo(handle_out, 1, &rc);  
  26.     CloseHandle(handle_out);    //关闭标准输出设备句柄  
  27.     return 0;  
  28. }  

 

 

       其中,SetConsoleScreenBufferSize函数指定新的控制台屏幕缓冲区的大小,以列和行为单位。指定的宽度和高度不能小于控制台屏幕缓冲区窗口的宽度和高度。指定的大小也不能小于系统允许的最小大小。这个最低取决于控制台当前的字体大小 (由用户选定)。

 

       另外,GetConsoleTitle函数的具体实现取是否宏定义了UNICODE(与文件编码形式有关),所以在部分IDE中可能这段示例编译不通过,换一个别的编译器或IDE就行了。本样例在Code::Blocks 13.12编译通过。

转载于:https://www.cnblogs.com/lxl0928/p/3790454.html

你可能感兴趣的文章
HDU 1087 Super Jumping! Jumping! Jumping!
查看>>
0007_初始模块和字节码
查看>>
[效率提升]如何管理好你的电脑文件
查看>>
C++实验二
查看>>
SharePoint2010 富文本框添加图片功能的扩展
查看>>
零零碎碎的知识
查看>>
UNIX基础--用户和基本账户管理
查看>>
设计模式
查看>>
5.0以上机器XPOSED框架安装流程
查看>>
静态方法与非静态方法
查看>>
注释,字符串
查看>>
性能瓶颈
查看>>
cmd 导入数据库
查看>>
Makefile书写注意事项--个人择记(一)
查看>>
文件转码重写到其他文件
查看>>
场景3 Data Management
查看>>
树结构练习——排序二叉树的中序遍历
查看>>
AC自动机模板
查看>>
python 基本语法
查看>>
Swift - 点击箭头旋转
查看>>