2.交互-对鼠标及键盘的使用
需要对windows中的“消息”进行编程,比如,对WM_LBUTTONDOWN这个消息建立一个函数,这个函数就会在鼠标左键按下后执行。当然键盘也一样,WM_KEYDOWN就是针对键盘的。
WM_LBUTTONDOWN消息的函数有两个参数,第一个UINT nFlags,用来判断哪个键被按下,用来和MK_LBUTTON这样的鼠标键码做与运算,如果值为真就是这个左键被按下了,第二个参数CPoint point则用来保存当前鼠标的坐标,用point.x和point.y来访问。
用鼠标绘画,得建立一个CClientDC的实例-CClientDC dc(this);dc.SetPixel(x,y,RGB(r,g,b))则用来对特定点上特定色。但是这个方法不实用,在鼠标快速移动时,画出来的线是虚的,需要用moveto和lineto来画实线-dc.MoveTo(x1,y1);dc.LineTo(x2,y2)。这两条会在(x1,y1)和(x2,y2)之间画一条实线。把moveto和lineto加到WM_MOUSEMOVE的消息函数里去,就可以在鼠标的移动中不断画出需要的线来。如果要改变画线的颜色和粗细,得用这样的方法:CPen penNew(PS_SOLID, 16, RGB(r,g,b));dc.SelectObject(&penNew);第一句建立一个特定笔触、粗细、颜色的画笔,第二句把这个画笔选中到当前dc里去。然后Lineto和moveto就用这样的画笔来画线了。
WM_KEYDOWN的消息函数有3个参数(UINT nChar, UINT nRepCnt, UINT nFlags),第一个是键值,可以用char(nChar)来转换成字符,第二个是该键被按住了多少次连发,第三个参数用来检查是否有alt被按下等。
例子里用了更改鼠标光标形状的代码,用HCURSOR lhCursor来实例化一个光标句柄,用lhCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW)来加载一个特定光标形状,再用SetCursor(lhCursor)来激活此光标,这样,默认光标就被替换了。但是在鼠标移动或其他事件发生时,默认的WM_SETCURSOR消息又会把光标恢复回默认的箭头(IDC_ARROW),所以需要对WM_SETCURSOR消息的处理进行编程,用一个函数。这个函数在修改完默认光标后,返回一个true,而不是默认动作,这样就可以一直使用修改过的光标,直到你让这个函数返回非true的原值。
如何来判断shift或者ctrl被同时按下?如果::GetKeyState(VK_SHIFT)的返回值是个负数,那么,该键已经被按下了。
2.交互-对鼠标及键盘的使用相关推荐
- 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件
[索引页] [×××] 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件 作者:webabcd 介绍 Silverlight 2.0 人机交互:响应用户的鼠标操作和键盘操作 ...
- 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
交互系统的构建之(二)Linux下鼠标和键盘的模拟控制 zouxy09@qq.com http://blog.csdn.net/zouxy09 交互系统的构建之(一)http://blog.csdn. ...
- 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计
目录 一.输入/输出文字 1. 输出文字 2. 输入文字 二.鼠标与键盘交互设计 1. 键盘事件 2. 鼠标事件 2.1 获取鼠标点击的位置 3. 计时器 最近博主在 CSDN 上看到许多关于海龟画图 ...
- python实现自动按键_Python使用pyautogui模块实现自动化鼠标和键盘操作示例
本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作.分享给大家供大家参考,具体如下: 一.pyautogui模块简要说明 ## 使用 pyautogui 模块相关函数,可以模 ...
- 【Python军火库】pyautogui:成熟的鼠标和键盘自己动起来!
文章目录 一.前提知识点 1. 安装pyautogui 2. 电脑分辨率这件事 3. 做好GUI安全措施 二.鼠标动起来! 1. 控制鼠标移动 2. 控制鼠标交互 三.键盘动起来! 四.屏幕图像识别 ...
- 疣猪操纵杆_如何将您的Android设备用作鼠标,键盘,操纵杆等
疣猪操纵杆 Using your Android to control your computer is a great way to interact with programs. Your pho ...
- 技术:双电脑共享鼠标、键盘解决方案 | USB对拷线、Synergy
问题点:双电脑协同使用,每次转换鼠标.键盘很麻烦,文件传输不方便,使用U盘插拔易导致电脑USB接口假死- 解决方案一:对拷线 采用USB 公对公接头,电商商城搜索对拷线即可购买,以绿联的产品举例,其支 ...
- matlab中结束脚本运行_如何让MATLAB控制你的鼠标和键盘
相信大家平时或多或少总会碰到这类情况 做了100次测试,要给100个测试结果文件重新命名 做了100张数据分析图,要在这100张图的右下角注明"某某实验室"的字样护 发现了一个论文 ...
- python图形界面化编程GUI(三)事件绑定(鼠标和键盘、OptionMenu、scale、颜色、文件对话框、菜单和工具栏、ttk子模块)
常用组件汇总 Tkinter类 名称 简介 Toplevel 顶层 容器类,可用于为其他组件提供单独的容器,类似于窗口 Button 按钮 代表按钮组件 Canvas 画布 提供绘图功能,包括直线.矩 ...
- 手势识别控制鼠标和键盘
项目已经及上传github,需者自取. https://github.com/grey-wood-wolf/Gesture-recognition-mouse-and-keyboard-control ...
最新文章
- How React Works (一)首次渲染
- Window 消息大全使用详解(无聊没事做)
- SAP Spartacus里的HTTPErrorInterceptor的单元测试设计原理
- java项目设计_java项目设计
- 大数据胸_喂母乳会导致胸下垂?!你被这个谣言骗了多少年?
- 前端学习(1999)vue之电商管理系统电商系统之分析表单的数据
- jpa 多字段like_Spring Data JPA 如何进行模糊查询(LIKE) ?
- Lnmp上安装Yaf学习(一)
- android 粘性view_android - 如何在RecyclerView中制作粘性标头? (有或没有外部库) - SO中文参考 - www.soinside.com...
- 利用HOG特征进行人体检测--简述
- ubuntu中pycharm无法输入汉字
- 什么?都2021年了还不会ajax嘛,来这里让您快速学会Ajax
- Junit 4 的使用
- 北大《中文核心期刊要目总览》2020版目录人文、社会科学
- 4选1数据选择器程序及testbench文件,给出仿真波形,分析
- linux live usb 使用方法,Linux下制作Live USB方法
- python软件要钱吗-python语言是免费还是收费的?
- python冒号排序教程
- python两个数组合并排序_合并Python中的排序数组
- 【生信】第一二三代测序技术原理的理解
热门文章
- MariaDB安装教程
- Linux使用命令安装vim编辑器
- 数据挖掘--非负矩阵分解
- 30m土地利用数据集获取大全/植被类型分布/NDVI数据/NPP数据/径流量数据/降雨量气温气象数据/蒸散量数据/太阳辐射数据
- 武汉大学计算机学院程序大赛,“星网锐捷杯”华中区高校研究生程序设计大赛通知...
- abb机器人goto指令用法_ABB机器人的指令详细介绍!!!
- PMP-8. 项目经理的能力
- ESP8266与阿里云传数据
- pcap文件格式及写pcap文件
- 天猫达尔文商品管理体系通俗简介