windows.h库小结

这里讲述了一些关于windows.h库的内容。

控制鼠标

控制鼠标移动

1
::SetCursorPos(x,y);	//让鼠标移动到(x,y)点。

控制鼠标点击

1
2
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);	//鼠标按下
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); //鼠标松开

控制键盘

1
2
keybd_event(x,0,0,0);	//按下这个键
keybd_event(x,0,KEYEVENTF_KEYUP,0); //松开这个键

键位表

检测

1
#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)

检测鼠标

1
2
3
KEY_DOWN(VK_LBUTTON)	//左键
KEY_DOWN(VK_RBUTTON) //右键
KEY_DOWN(VK_MBUTTON) //中键

检测键盘

1
KEY_DOWN(x)		//是否按下这个键

键位表

控制光标位置

1
2
3
4
5
6
7
8
inline void print(int x,int y,char c)
{
HANDLE hOut;COORD pos;
hOut=GetStdHandle(STD_OUTPUT_HANDLE);
pos.X=y;pos.Y=x;
SetConsoleCursorPosition(hOut,pos);
printf("%c",c);
}

在(x,y)这个位置输出一个字符c

使光标消失

1
2
3
4
5
6
7
8
9
inline void dis_mouse()
{
ShowCursor(false);
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=false;
SetConsoleCursorInfo(hOut,&cci);
}

控制台大小设定

1
2
3
4
5
6
inline void set_windows(int x1,int y1,int x2,int y2)
{
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);SMALL_RECT rc;
rc.Left=x1,rc.Top=y1,rc.Right=x2,rc.Bottom=y2;
SetConsoleWindowInfo(hOut, TRUE, &rc);
}

改变颜色

1
void color(int a) {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}

颜色表