知识点:
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;
}
原文链接: https://www.cnblogs.com/whzym111/p/6164870.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/245625
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!