如何在控制台响应键盘事件,实现TAB切换功能?
一:效果展示:当切换到LOGIN按钮时,按钮颜色从绿变蓝,当离开LOGIN按钮时,按钮颜色恢复成绿色。
二代码
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
#define KEY_TAB 9
#define BACKGROUND_BlACK 0
#define BACKGROUND_WHITE 255
using namespace std;
typedef struct myinput{
int height;
int width;
int bgColor;
int fgColor;
int startPosY;
int startPosX;
}MYINPUT;
typedef struct mybutton{
int height;
int width;
int bgColor;
int fgColor;
int startPosY;
int startPosX;
string str;
}MYBUTTON;
/**
function: 将字符输出到缓冲区
@param
ch: 要输入的字符
posLine : 字符所在行的位置
posColumn: 字符所在列的位置
charInfoAarray:缓冲区数组的内容
**/
void WriteCharToBuffer(CHAR_INFO ch, int posLine, int posColumn, CHAR_INFO * charInfoAarray)
{
charInfoAarray[posLine * 80 + posColumn] = ch;
}
/***
function:将缓冲区的字符输出到控制台
@param
startPosRow:显示区域起始点的行号
startPosColumn:显示区域起始点的列号
height:显示区域高
width:显示区域宽
charInfoAarray:缓冲区数组的内容
***/
void OutPutToConsole(int startPosRow, int startPosColumn, int height, int width, CHAR_INFO * charInfoAarray)
{
HANDLE hConsoleOutp