需要对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.交互-对鼠标及键盘的使用相关推荐

  1. 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件

    [索引页] [×××] 稳扎稳打Silverlight(13) - 2.0交互之鼠标事件和键盘事件 作者:webabcd 介绍 Silverlight 2.0 人机交互:响应用户的鼠标操作和键盘操作 ...

  2. 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制

    交互系统的构建之(二)Linux下鼠标和键盘的模拟控制 zouxy09@qq.com http://blog.csdn.net/zouxy09 交互系统的构建之(一)http://blog.csdn. ...

  3. 全网最细海龟 (turtle) 画图讲解 (五):输入/输出文字及鼠标与键盘交互设计

    目录 一.输入/输出文字 1. 输出文字 2. 输入文字 二.鼠标与键盘交互设计 1. 键盘事件 2. 鼠标事件 2.1 获取鼠标点击的位置 3. 计时器 最近博主在 CSDN 上看到许多关于海龟画图 ...

  4. python实现自动按键_Python使用pyautogui模块实现自动化鼠标和键盘操作示例

    本文实例讲述了Python使用pyautogui模块实现自动化鼠标和键盘操作.分享给大家供大家参考,具体如下: 一.pyautogui模块简要说明 ## 使用 pyautogui 模块相关函数,可以模 ...

  5. 【Python军火库】pyautogui:成熟的鼠标和键盘自己动起来!

    文章目录 一.前提知识点 1. 安装pyautogui 2. 电脑分辨率这件事 3. 做好GUI安全措施 二.鼠标动起来! 1. 控制鼠标移动 2. 控制鼠标交互 三.键盘动起来! 四.屏幕图像识别 ...

  6. 疣猪操纵杆_如何将您的Android设备用作鼠标,键盘,操纵杆等

    疣猪操纵杆 Using your Android to control your computer is a great way to interact with programs. Your pho ...

  7. 技术:双电脑共享鼠标、键盘解决方案 | USB对拷线、Synergy

    问题点:双电脑协同使用,每次转换鼠标.键盘很麻烦,文件传输不方便,使用U盘插拔易导致电脑USB接口假死- 解决方案一:对拷线 采用USB 公对公接头,电商商城搜索对拷线即可购买,以绿联的产品举例,其支 ...

  8. matlab中结束脚本运行_如何让MATLAB控制你的鼠标和键盘

    相信大家平时或多或少总会碰到这类情况 做了100次测试,要给100个测试结果文件重新命名 做了100张数据分析图,要在这100张图的右下角注明"某某实验室"的字样护 发现了一个论文 ...

  9. python图形界面化编程GUI(三)事件绑定(鼠标和键盘、OptionMenu、scale、颜色、文件对话框、菜单和工具栏、ttk子模块)

    常用组件汇总 Tkinter类 名称 简介 Toplevel 顶层 容器类,可用于为其他组件提供单独的容器,类似于窗口 Button 按钮 代表按钮组件 Canvas 画布 提供绘图功能,包括直线.矩 ...

  10. 手势识别控制鼠标和键盘

    项目已经及上传github,需者自取. https://github.com/grey-wood-wolf/Gesture-recognition-mouse-and-keyboard-control ...

最新文章

  1. How React Works (一)首次渲染
  2. Window 消息大全使用详解(无聊没事做)
  3. SAP Spartacus里的HTTPErrorInterceptor的单元测试设计原理
  4. java项目设计_java项目设计
  5. 大数据胸_喂母乳会导致胸下垂?!你被这个谣言骗了多少年?
  6. 前端学习(1999)vue之电商管理系统电商系统之分析表单的数据
  7. jpa 多字段like_Spring Data JPA 如何进行模糊查询(LIKE) ?
  8. Lnmp上安装Yaf学习(一)
  9. android 粘性view_android - 如何在RecyclerView中制作粘性标头? (有或没有外部库) - SO中文参考 - www.soinside.com...
  10. 利用HOG特征进行人体检测--简述
  11. ubuntu中pycharm无法输入汉字
  12. 什么?都2021年了还不会ajax嘛,来这里让您快速学会Ajax
  13. Junit 4 的使用
  14. 北大《中文核心期刊要目总览》2020版目录人文、社会科学
  15. 4选1数据选择器程序及testbench文件,给出仿真波形,分析
  16. linux live usb 使用方法,Linux下制作Live USB方法
  17. python软件要钱吗-python语言是免费还是收费的?
  18. python冒号排序教程
  19. python两个数组合并排序_合并Python中的排序数组
  20. 【生信】第一二三代测序技术原理的理解

热门文章

  1. MariaDB安装教程
  2. Linux使用命令安装vim编辑器
  3. 数据挖掘--非负矩阵分解
  4. 30m土地利用数据集获取大全/植被类型分布/NDVI数据/NPP数据/径流量数据/降雨量气温气象数据/蒸散量数据/太阳辐射数据
  5. 武汉大学计算机学院程序大赛,“星网锐捷杯”华中区高校研究生程序设计大赛通知...
  6. abb机器人goto指令用法_ABB机器人的指令详细介绍!!!
  7. PMP-8. 项目经理的能力
  8. ESP8266与阿里云传数据
  9. pcap文件格式及写pcap文件
  10. 天猫达尔文商品管理体系通俗简介