4楼说没碰过那些头文件,就给你看一个~
程序代码:
#pragma once
#include <Windows.h>
class MyConsole
{
public:
// 文本顏色枚舉常數
static const enum TextColor : BYTE
{
BLACK = 0, // 黑色
BLUE = 1, // 藍色
GREEN = 2, // 綠色
CYAN = 3, // 青色
RED = 4, // 紅色
MAGENTA = 5, // 洋紅色
YELLOW = 6, // 黃色
WHITE = 7, // 白色
INTENSITY = 8 // 高亮
};
// 按鍵掃描碼枚舉常數
static const enum KeyCode : wint_t
{
K_BACKSPACE = 0x0008,
K_TAB = 0x0009,
K_ENTER = 0x000D,
K_ESC = 0x001B,
K_F1 = 0x003B,
K_F2 = 0x003C,
K_F3 = 0x003D,
K_F4 = 0x003E,
K_F5 = 0x003F,
K_F6 = 0x0040,
K_F7 = 0x0041,
K_F8 = 0x0042,
K_F9 = 0x0043,
K_F10 = 0x0044,
K_F11 = 0x0405,
K_F12 = 0x0406,
K_ALT_F1 = 0x0068,
K_ALT_F2 = 0x0069,
K_ALT_F3 = 0x006A,
K_ALT_F4 = 0x006B,
K_ALT_F5 = 0x006C,
K_ALT_F6 = 0x006D,
K_ALT_F7 = 0x006E,
K_ALT_F8 = 0x006F,
K_ALT_F9 = 0x0070,
K_ALT_F10 = 0x0071,
K_ALT_F11 = 0x040B,
K_ALT_F12 = 0x040C,
K_CTRL_F1 = 0x005E,
K_CTRL_F2 = 0x005F,
K_CTRL_F3 = 0x0060,
K_CTRL_F4 = 0x0061,
K_CTRL_F5 = 0x0062,
K_CTRL_F6 = 0x0063,
K_CTRL_F7 = 0x0064,
K_CTRL_F8 = 0x0065,
K_CTRL_F9 = 0x0066,
K_CTRL_F10 = 0x0067,
K_CTRL_F11 = 0x0409,
K_CTRL_F12 = 0x0003,
K_INS = 0x03D2,
K_DEL = 0x03D3,
K_HOME = 0x03C7,
K_END = 0x00CF,
K_PGUP = 0x03C9,
K_PGDN = 0x03D1,
K_CTRL_HOME = 0x03F7,
K_CTRL_END = 0x03F5,
K_CTRL_PGUP = 0x0406,
K_CTRL_PGDN = 0x03F6,
K_LEFT = 0x03CB,
K_RIGHT = 0x03CD,
K_UP = 0x03C8,
K_DOWN = 0x03D0,
K_CTRL_LEFT = 0x03F3,
K_CTRL_RIGHT = 0x03F4,
K_CTRL_UP = 0x040D,
K_CTRL_DOWN = 0x0411
};
// 初始化控制臺窗口爲指定寬度和高度
static void Init(SHORT width, SHORT height);
// 取控制臺窗口的行數
static SHORT GetRows(void);
// 取控制臺窗口的列數
static SHORT GetColumns(void);
// 將前景色和背景色構造成文本屬性
static WORD CombineAttribute(BYTE fore, BYTE back);
// 將文本屬性拆分出前景色和背景色
static void SplitAttribute(WORD attr, BYTE* fore, BYTE* back);
// 設置控制臺文本顏色返回新屬性値
static WORD SetTextColor(BYTE fore, BYTE back);
// 獲取控制臺當前文本顏色屬性
static WORD GetTextColor(void);
// 設置控制臺窗口標題
static void SetTitle(const char* title);
// 設置控制臺窗口標題
static void SetTitle(const wchar_t* title);
// 獲取控制臺窗口標題
static void GetTitle(char* title);
// 獲取控制臺窗口標題
static void GetTitle(wchar_t* title);
// 將文本光標定位到指定位置
static void GotoXY(SHORT row, SHORT column);
// 將文本光標定位到指定位置
static void GotoXY(COORD pos);
// 設置文本光標的可見性
static void SetCursorVisible(bool visible);
// 獲取文本光標的可見性
static bool GetCursorVisible(void);
// 設置文本光標的大小
static void SetCursorSize(DWORD size);
// 獲取當前文本光標的大小
static DWORD GetCursorSize(void);
// 用指定顏色屬性清屛
static void Clear(WORD attr = GetTextColor());
// 用指定顏色屬性清空一塊範圍
static void Clear(SMALL_RECT rect, WORD attr = GetTextColor());
// 用指定顏色屬性從一行指定列開始清空到結尾
static void ClearLine(COORD pos, WORD attr = GetTextColor());
// 用指定顏色屬性畫一個矩形
static void Box(SMALL_RECT rect, WORD attr = GetTextColor());
// 不影響內容改變一塊區域的背景色
static void FillBackColor(SMALL_RECT rect, BYTE back = BLACK);
// 用指定文本顏色在指定位置輸出字符串
static void WriteString(const wchar_t* str, COORD pos, WORD attr = GetTextColor());
// 用指定文本顏色在指定位置輸出字符串
static void WriteString(const char* str, COORD pos, WORD attr = GetTextColor());
static const CHAR_INFO* SaveScreen(void);
static bool LoadScreen(const CHAR_INFO* buffer);
// 讀取一個鍵盤按鍵並返回其掃描碼
static KeyCode ReadKeypress(void);
};