• c++ 绘制方框


    知识点:
    GetStdHandle函数
    FillConsoleOutputCharacter函数
    SetConsoleCursorPosition函数
    system函数
     
    
    一、 GetStdHandle 获取标准设备句柄 :  
     HANDLE GetStdHandle(   DWORD nStdHandle   );  
     GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。  
     其参数nStdHandle的值为下面几种类型的一种:  
     值含义  
     STD_INPUT_HANDLE   标准输入的句柄  
     STD_OUTPUT_HANDLE 标准输出的句柄   
      STD_ERROR_HANDLE  标准错误的句柄 
    二、FillConsoleOutputCharacter 填充字符
    BOOL FillConsoleOutputCharacter(
    
    HANDLE hConsoleOutput, // 缓冲区句柄 一般通过
    GetStdHandle(STD_OUTPUT_HANDLE)获取
    TCHAR cCharacter,      // 要填充的字符 
    DWORD nLength,         // 填充的字符数量  
    COORD dwWriteCoord,    // 填充的起始坐标x,y 
    LPDWORD lpNumberOfCharsWritten 
      // 返回一个写入数量的指针
    
     );
    
    
    三、SetConsoleCursorPosition 移动光标位置
    BOOL SetConsoleCursorPosition(
     
        HANDLE hConsoleOutput,   //缓冲区句柄 一般通过
    GetStdHandle(STD_OUTPUT_HANDLE)获取
      
                      COORD dwCursorPosition   // 指定新的光标位置
                               );
    
    四、设置当前光标位置 gotoxy(int x, int y);
       //之前需要用字符填满窗口缓冲区
      1、获取当前输出缓冲区句柄 GetStdHandle
      2、设置当前光标位置(x,y)   SetConsoleCursorPosition
    
       
    五、用system命令设置颜色和标题
    system("title 郁金香灬老师:QQ150330575"); //设置标题
    system("color 0A"); //设置颜色
    六、绘制方框
      1、确定左上角坐标X,Y //画边前先用空格填满窗口缓冲区
      2、画上边
      3、画下边
      4、画左边
      5、下右边
     
    
     
    作业:
    A、探讨以下2个控制台函数的使用方法:
    1、GetConsoleTitle 获取控制台窗口标题
    2、SetConsoleTitle 设置控制台窗口标题
    B、绘制一个2*2的表格 : 类似下图
        
        
    
    
    
    
    
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <ctype.h>
    #include <stdarg.h> 
    #include <time.h>
    #include "hello.h"
    #include <share.h>
    #include <Windows.h>
    
    //清屏
    void cls_screen(char a)
    {
        COORD xy={0,0};
        long byw;
        HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
        FillConsoleOutputCharacter(hout,a,2000,xy,&byw);
    }
    //#define  var 333;
    void gotoxy(int x,int y)
    {
        COORD xy={0,0};
         
        HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
        xy.X=x;
        xy.Y=y;
        SetConsoleCursorPosition(hout,xy);
    }
    //绘制方框
    #define X 22
    #define Y 6
    void drawM(void)
    { int i,j;
        //到达x,y
        gotoxy(X,Y);
        //上边--------------------
        printf("");
        for (i=0;i<=12;i++)
        {
            printf("");
        }
        printf("");
        //左边
     
        for (i=0;i<15;i++)
        { 
            gotoxy(X,Y+1+i);
            printf("");
        }
        //右边
         
        for (i=0;i<15;i++)
        { 
            gotoxy(X+28,Y+1+i);
            printf("");
        }
        //下边
        gotoxy(X,Y+16);
        //上边--------------------
        printf("");
        for (i=0;i<=12;i++)
        {
            printf("");
        }
        printf("");
    
    }
    int main(void)
    {   system("title QQ150330575");
        system("color 0a");
        system("dir");
        cls_screen(' ');//清屏;
        cls_screen(' ');//;
        gotoxy(3,2);
        //绘制方框
        drawM();
        getchar();
        getchar();
        return 0;
    }
  • 相关阅读:
    laravel tinker的使用
    清空表中数据
    不要为过多思考浪费你的精力
    #tomcat#启动过程分析(上)
    #hashMap冲突原理#详细
    #数组集合知识#HashMap的实现原理
    #数据库#连接数据库的几个步骤
    #数据库#JDBC基础知识
    #数据库#查询语句 1=1的使用条件
    #tomcat#虚拟主机配置及访问(三)
  • 原文地址:https://www.cnblogs.com/whzym111/p/6164870.html
Copyright © 2020-2023  润新知