注:实测可用于Dev-C++5.1.1,不保证其他编译器可用。
I头文件
需要头文件:
#include <cstdio>
#include <conio.h>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <iostream>
#include <windows.h>
#include <algorithm>
或:
#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h>
II键盘函数
函数:
键按下#define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0)
键弹起#define KEY_UP(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 0 : 1)
使键按下keybd_event(VK_NONAME,0,0,0);
使键弹起keybd_event(VK_NONAME,0,KEYEVENTF_KEYUP,0);
使用方法:
1.if(KEY_DOWN(某个键))或if(KEY_UP(某个键)) 检测该键是否按下/未按下
2.keybd_event(某个键,0,0,0);或keybd_event(某个键,0,KEYEVENTF_KEYUP,0);使该键是否按下/弹起(实际使用可参照下文鼠标函数click_left())
键码表(替换“某个键”):
VK_LBUTTON 鼠标左键 0x01
VK_RBUTTON 鼠标右键 0x02
VK_CANCEL Ctrl + Break 0x03
VK_MBUTTON 鼠标中键 0x04
VK_BACK Backspace 键 0x08
VK_TAB Tab 键 0x09
VK_RETURN 回车键 0x0D
VK_SHIFT Shift 键 0x10
VK_CONTROL Ctrl 键 0x11
VK_MENU Alt 键 0x12
VK_PAUSE Pause 键 0x13
VK_CAPITAL Caps Lock 键 0x14
VK_ESCAPE Esc 键 0x1B
VK_SPACE 空格键 0x20
VK_PRIOR Page Up 键 0x21
VK_NEXT Page Down 键 0x22
VK_END End 键 0x23
VK_HOME Home 键 0x24
VK_LEFT 左箭头键 0x25
VK_UP 上箭头键 0x26
VK_RIGHT 右箭头键 0x27
VK_DOWN 下箭头键 0x28
VK_SNAPSHOT Print Screen 键 0x2C
VK_Insert Insert 键 0x2D
VK_Delete Delete 键 0x2E
'0' – '9' 数字 0 - 9 0x30 - 0x39
'A' – 'Z' 字母 A - Z 0x41 - 0x5A
VK_LWIN 左WinKey(104键盘才有) 0x5B
VK_RWIN 右WinKey(104键盘才有) 0x5C
VK_APPS AppsKey(104键盘才有) 0x5D
VK_NUMPAD0 小键盘 0 键 0x60
VK_NUMPAD1 小键盘 1 键 0x61
VK_NUMPAD2 小键盘 2 键 0x62
VK_NUMPAD3 小键盘 3 键 0x63
VK_NUMPAD4 小键盘 4 键 0x64
VK_NUMPAD5 小键盘 5 键 0x65
VK_NUMPAD6 小键盘 6 键 0x66
VK_NUMPAD7 小键盘 7 键 0x67
VK_NUMPAD8 小键盘 8 键 0x68
VK_NUMPAD9 小键盘 9 键 0x69
VK_F1 - VK_F24 功能键F1 – F24 0x70 - 0x87
VK_NUMLOCK Num Lock 键 0x90
VK_SCROLL Scroll Lock 键 0x91
III鼠标函数
函数:
获取y int gy(){
POINT pt;
GetCursorPos(&pt);
return pt.x;
}
获取x int gx(){
POINT pt;
GetCursorPos(&pt);
return pt.y;
}
设置 SetCursorPos(x,y);}
左键点击void click_left(){
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
Sleep(5);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
右键点击void click_right(){
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
Sleep(5);
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
}
使用方法:
gx()或gy() 获取鼠标x,y坐标
SetCursorPos(x,y); 设置鼠标x,y坐标
click_left();使鼠标左键点击
click_right();使鼠标右键点击
IV输入函数
函数:
正常读入cin/scanf/getline
无痕读入getch()
检测按下kbhit()
使用方法:
cin/scanf/getline 略
getch() 常与kbhit()搭配,不输出在控制台的输入
kbhit();检测有无键按下
V输出函数
函数:
清屏system("cls")
光标跳至void GOTO(int x,int y){
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
HANDLE hConsoleOut;
hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsoleOut,&csbiInfo);
csbiInfo.dwCursorPosition.Y = x;
csbiInfo.dwCursorPosition.X = y;
SetConsoleCursorPosition(hConsoleOut,csbiInfo.dwCursorPosition);
}
设置颜色#define setcolor(x) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x)
设置颜色system("color XY");
使用方法:
system("cls") 清屏(速度较慢,可替换为GOTO(0,0))
GOTO(int x,int y) 光标跳至
setcolor(x) 设置颜色为x
system("color XY"); 设置颜色为背景:X文字:Y
颜色表(替换“x”和"XY"):
system("color XY");颜色
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
setcolor(x)颜色(背景色编码+文字色编码即可)
文字
1 深蓝色
2 深绿色
3 深青色
4 深红色
5 深粉色
6 黄色
7 深白色
8 灰色
9 浅蓝色
10 浅绿色
11 浅青色
12 浅红色
13 浅粉色
14 浅黄色
15 浅白色
背景
1~15 黑色
16~31 深蓝色
32~47 深绿色
48~63 深青色
64~79 深红色
80~95 深粉色
96~111 深黄色
112~127 深白色
128~143 灰色
144~159 浅蓝色
160~175 浅绿色
176~191 浅青色
192~207 浅红色
208~223 浅粉色
224~239 浅黄色
240~255 浅白色
VI窗口函数
函数:
获取窗口GetForegroundWindow();
隐藏/显示ShowWindow(hWnd,SW_NONAME);
最大化HWND hwnd = 窗口;
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
LONG l_WinStyle = GetWindowLong(hwnd,GWL_STYLE);
SetWindowLong(hwnd,GWL_STYLE,(l_WinStyle | WS_POPUP | WS_MAXIMIZE) & ~WS_CAPTION & ~WS_THICKFRAME & ~WS_BORDER);
SetWindowPos(hwnd, HWND_TOP, 0, 0, cx, cy, 0);
使用方法:
1.GetForegroundWindow(); 获取最前方窗口ID
2.ShowWindow(hWnd,状态);使hWnd(可用HWND hWnd=GetForegroundWindow();获取)变为(HIDE:隐藏/SHOW:显示)某状态文章来源:https://www.toymoban.com/news/detail-489071.html
3.(省略...)最大化使窗口最大化文章来源地址https://www.toymoban.com/news/detail-489071.html
到了这里,关于c++ 键盘/鼠标交互+特殊输入/输出+窗口常用函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!