注:實測可用于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鍵盤函數(shù)
函數(shù):
鍵按下#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);使該鍵是否按下/彈起(實際使用可參照下文鼠標函數(shù)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' 數(shù)字 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鼠標函數(shù)
函數(shù):
獲取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輸入函數(shù)
函數(shù):
正常讀入cin/scanf/getline
無痕讀入getch()
檢測按下kbhit()
使用方法:
cin/scanf/getline 略
getch() 常與kbhit()搭配,不輸出在控制臺的輸入
kbhit();檢測有無鍵按下
V輸出函數(shù)
函數(shù):
清屏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窗口函數(shù)
函數(shù):
獲取窗口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,狀態(tài));使hWnd(可用HWND hWnd=GetForegroundWindow();獲取)變?yōu)?HIDE:隱藏/SHOW:顯示)某狀態(tài)文章來源:http://www.zghlxwxcb.cn/news/detail-489071.html
3.(省略...)最大化使窗口最大化文章來源地址http://www.zghlxwxcb.cn/news/detail-489071.html
到了這里,關于c++ 鍵盤/鼠標交互+特殊輸入/輸出+窗口常用函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!