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; }