版权声明:转载请注明出处 https://blog.csdn.net/qq_42292831/article/details/85316102
以前的一片文章中提到了如何调用系统函数显示当前系统时间:【点我即达】
那么,这篇文章就来实现【自定义函数显示进度条以及进度条的定位显示】
************************************************************************************************************************************
一:源码
Main.cpp
#include "Progress_Bar.h"
int main()
{
Display_Progress_Bar(3,3);
return 0;
}
Progress_Bar.h
#pragma once
#include <iostream>
#include <windows.h>
using namespace std;
void No_Cursor()
{
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
cci.dwSize = 1;
cci.bVisible = false;
SetConsoleCursorInfo(hOut, &cci);
}
void GotoXY(short x, short y)
{
COORD loc;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
loc.X = x;
loc.Y = y;
SetConsoleCursorPosition(hOut, loc);
No_Cursor();
}
void GotoXY(short y)
{
COORD loc;
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
loc.X = 0;
loc.Y = y;
SetConsoleCursorPosition(hOut, loc);
No_Cursor();
}
void Display_Progress_Bar(short y)
{
GotoXY(y);
cout << "┍";
GotoXY(y + 1);
cout << "│";
GotoXY(1, y);
for (int i = 0; i < 51; i++)
{
cout << "─";
}
cout << "┑";
GotoXY(y + 2);
cout << "┕";
for (int i = 0; i < 51; i++)
{
cout << "─";
}
cout << "┙";
GotoXY(52, y + 1);
cout << "│";
GotoXY(2, y + 1);
for (int i = 0, j = 0; i < 25; i++, j = j + 2)
{
GotoXY(2 + j, y + 1);
cout << "■";
GotoXY(58, y + 1);
cout << "已完成" << (i + 1) * 4 << "%";
Sleep(200);
}
cout << " ";
}
void Display_Progress_Bar(short x, short y)
{
GotoXY(x, y);
cout << "┍";
GotoXY(x, y + 1);
cout << "│";
GotoXY(1 + x, y);
for (int i = 0; i < 51; i++)
{
cout << "─";
}
cout << "┑";
GotoXY(x, y + 2);
cout << "┕";
for (int i = 0; i < 51; i++)
{
cout << "─";
}
cout << "┙";
GotoXY(52 + x, y + 1);
cout << "│";
GotoXY(2 + x, y + 1);
for (int i = 0, j = 0; i < 25; i++, j = j + 2)
{
GotoXY(2 + j + x, y + 1);
cout << "■";
GotoXY(55 + x, y + 1);
cout << "已完成" << (i + 1) * 4 << "%";
Sleep(200);
}
cout << " ";
}