C语言/C++ - 实现进度条的定位显示

版权声明:转载请注明出处 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 << "   ";
}

二:思路与代码解析

扫描二维码关注公众号,回复: 4731385 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_42292831/article/details/85316102
今日推荐