zoukankan      html  css  js  c++  java
  • C语言控制台窗口图形界面编程(二)

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

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

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

    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编译通过。

  • 相关阅读:
    Java中二进制数与整型之间的转换
    校招小白机考入坑之从键盘输入java的各种数据类型
    使用flume抓取tomcat的日志文件下沉到kafka消费
    Scala学习笔记之Actor多线程与线程通信的简单例子
    通过流的方式操作hadoop的API
    Windows环境下使用kafka单机模式
    scrapy
    python 虚拟环境
    celery使用
    redis install
  • 原文地址:https://www.cnblogs.com/lxl0928/p/3790454.html
Copyright © 2011-2022 走看看