From DD哥- -
setCursorVisible(0);//设置光标不可见
setWindowTitle(" XXXXX"); //改标题的文字
setWindowSize(20,15);//设置屏幕大小
#ifndef CONSOLE_H
#define CONSOLE_H
#include <windows.h>
//声明部分
void moveCursor (int, int);
void setCursorVisible (int); //设置光标不可见
int getMaxSize ();
void setWindowTitle (char*);
void setWindowSize (int, int);//设置屏幕大小
void setColor (int, int);
//将输出符号定位到第[p_y]行第[p_x]个字符上。
void moveCursor (int p_x, int p_y) {
int t_max = getMaxSize ();
p_x = p_x < 1 ? 1 : (p_x >= t_max ? t_max - 1: p_x);
p_y = p_y < 1 ? 1 : p_y;
COORD t_pos;
t_pos.X = p_x - 1;
t_pos.Y = p_y - 1;
HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleCursorPosition (t_handle, t_pos);
}
//设置光标是否可见,0为不可见,其它数字为可见
void setCursorVisible (int p_visitble) {
HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO t_info;
GetConsoleCursorInfo (t_handle, &t_info);
t_info.bVisible = p_visitble == FALSE ? FALSE : TRUE;
SetConsoleCursorInfo (t_handle, &t_info);
}
//返回一行最大可以容纳的字符数
int getMaxSize () {
HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO t_info;
GetConsoleScreenBufferInfo (t_handle, &t_info);
return t_info.dwSize.X;
}
//设置窗口标题,可以如下调用: setWindowTitle ("窗口标题");
void setWindowTitle (char* p_title) {
SetConsoleTitle (p_title);
}
//设置窗口大小为[p_width] * [p_height]字符,注意:窗口过大或过小均会失败,请自行尝试
void setWindowSize (int p_width, int p_height) {
HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);
SMALL_RECT t_size = {0, 0, p_width < 1 ? 1 : p_width, p_height < 1 ? 1 : p_height};
SetConsoleWindowInfo (t_handle, true , &t_size);
}
//更改接下来输出的文字颜色
//[p_font]文字颜色 取值为0-15 默认为7
//[p_back]背景颜色 取值为0-15 默认为0
void setColor (int p_font, int p_back) {
HANDLE t_handle = GetStdHandle (STD_OUTPUT_HANDLE);
SetConsoleTextAttribute (t_handle, p_font + (p_back << 4));
}
#endif