c++ 键盘/鼠标交互+特殊输入/输出+窗口常用函数

这篇具有很好参考价值的文章主要介绍了c++ 键盘/鼠标交互+特殊输入/输出+窗口常用函数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注:实测可用于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:显示)某状态

3.(省略...)最大化使窗口最大化文章来源地址https://www.toymoban.com/news/detail-489071.html

到了这里,关于c++ 键盘/鼠标交互+特殊输入/输出+窗口常用函数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity鼠标键盘交互

    将代码放置在被拖动的物体上   将代码放置在灯上,设置虚拟轴的键盘+-改变数值 将代码放置在空物体上

    2024年02月11日
    浏览(92)
  • Opencv之鼠标事件/窗口交互详解

    平时在做图像处理demo或者研究测试算法时,经常会用到 imshow 和鼠标的交互,比如在显示图像的窗口上画点、线、圆、矩形、多边形等操作,故在此做出用法总结。 鼠标回调函数介绍: 截取感兴趣区域ROI: 涉及的相关参数: 或者python-opencv中的参数也相同: 对于拼接后的图

    2024年02月14日
    浏览(46)
  • 【Unity入门】鼠标输入和键盘输入

    一、监听鼠标输入 GetMouseButtonUp 、GetMouseButtonDown、GetMouseButton input.GetMouseButtonDown和 input.GetMouseButtonUp 能够分别监听鼠标的按下和松开事件,GetMouseButton长按响应,值得注意的是,这三个方法需要传入参数,0表示左键,1表示右键,2表示中间键 比如我们可以在代码中这样写,来

    2024年02月03日
    浏览(40)
  • 【Unity入门】15.鼠标输入和键盘输入

        大家好,我是Lampard~~     欢迎来到Unity入门系列博客,所学知识来自B站阿发老师~感谢   (1) Input类     Unity的 Input类提供了许多监听用户输入的方法 ,比如我们常见的鼠标,键盘,手柄等。我们可以用Input类的接口来获取用户的输入信息     下面我们会调用几个常用的

    2024年02月09日
    浏览(40)
  • JAVA 鼠标控制与键盘输入控制

    该类是JDK定义的电脑系统的抽象类,可以用来模拟实现鼠标点击与键盘输入等信息 简单实现一个自动抢票代码: InputEvent.BUTTON1_MASK 左键 (食指点击) InputEvent.BUTTON2_MASK 中键 (滚轮) InputEvent.BUTTON3_MASK 右键(中指点击) 得到的信息需要根据屏幕--显示设置--缩放与布局的百分

    2024年02月13日
    浏览(39)
  • Unity Input输入类-鼠标键盘检测

    当你开发Unity游戏时,与用户的输入交互是非常重要的。Unity提供了丰富的输入类来帮助你获取用户的输入,并做出相应的响应。在本文中,我将会向你介绍Unity中的输入类,包括Input、KeyCode、MouseButton和Touch等。 Input类 Input类是Unity中最基础的输入类,它可以获取各种类型的输

    2024年02月11日
    浏览(55)
  • 34_输入设备键盘鼠标你得会

    键盘和鼠标是个人计算机中常用的输入设备。通过键盘可以将字母、数字、标点符号等输入计算机中,从而向计算机发出命今;鼠标可以对屏幕上的光标进行定位,并通过鼠标按钮和滚轮对光标所处位置的屏幕元素进行操作。一个应用程序应该响应用户的键盘和鼠标输入事件。

    2024年01月22日
    浏览(36)
  • python绑定游戏窗口模拟键盘鼠标操作方法64位32位通用

    python绑定游戏窗口模拟键盘鼠标操作方法 工具 python 64位和32位都可以 引用模块 import win32gui import win32api,win32con 一、例子 二、获取子窗口句柄如下: 三、使用win32gui发送消息 四、向窗口中插入图片 其中,image_path代表要插入的图片路径,x和y代表图片的坐标。先使用Pillow库(

    2024年01月21日
    浏览(43)
  • VTK & QT QVTKWidget自定义鼠标和键盘交互事件

    目录 一、问题描述 二、代码实现 1. 自定义鼠标交互事件 2. 移除默认鼠标交互监听事件,塞入自定义监听事件 在使用VTK显示的过程中,通常会使用QT来进行界面设计。这里通常使用QVTKWidget将VTK的渲染窗口显示到QT的组件中。 QVTKWidget组件自带交互器vtkRenderWindowInteractor和Rende

    2024年02月14日
    浏览(56)
  • unity3D 鼠标键盘输入

    一、鼠标键盘输入 游戏的输入可以来自于鼠标,键盘,触摸屏,游戏手柄 显示一个Vector3类型的xyz的鼠标位置。 Input.GetButtonDown(0):0代表鼠标左键,1代表鼠标右键,如果鼠标左键按下返回true。 Input.GetKeyDown(\\\"space\\\"): 检测空格是否按下。 更多操作可以查看Unity Script API( UnityE

    2024年02月10日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包