void CMainWindow::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags ){
if((nChar=='A')&&(GetKeyState( VK_SHIFT)<)&&(GetKeyState(VK_LBUTTON))){
MessageBox(_T("shift+A+鼠标左键被按下了"));
} if(GetKeyState(VK_NUMLOCK)&0x01){/* 若高序位为1,则键处于DOWN状态,否则为UP状态。 若低序位为1,则键被触发。若低序位置为0,则键被关闭,且不被触发。触发键在键盘上的指示灯,当键被触发时即亮,键不被触发时即灭。 */ MessageBox(_T("NumLock被按下了"));
}
}
void CMainWindow::OnChar(UINT nChar,UINT nRepCnt,UINT nFlags){
CString s;
if((nChar>=_T('A'))&&(nChar<=_T('Z'))||(nChar>=_T('a'))&&(nChar<=_T('z'))){
s.Format(_T("你按下了:%c"),nChar);
MessageBox(s);
}
}

判断是否在图形内部的两种方法:

方法一:PtInRect

void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point)
{
CRect rc(,,,);
if(rc.PtInRect(point)){
MessageBox(_T("内部"),NULL);
}else
{
MessageBox(_T("外部"),NULL);
}
}

方法二:判断像素颜色(最好用黑白两色,其他颜色可能是抖动色,不准确)

void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point)
{
CClientDC dc(this);
if(dc.GetPixel(point)==RGB(,,)){
MessageBox(_T("内部"),_T("a"),MB_ABORTRETRYIGNORE);
}
}

 处理光标:

void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point)
{
TEXTMETRIC tm;
CClientDC dc(this);
dc.GetTextMetrics(&tm);
CreateSolidCaret(,tm.tmHeight);//光标的宽和高
CSize size=dc.GetTextExtent(_T("aaaaaaaaa",));//光标处于当前鼠标位置之后8个字符的位置
SetCaretPos(CPoint(point.x+size.cx,point.y));
ShowCaret();//默认是隐藏的
m_ptCaret=point;
}

MFC鼠标键盘消息处理的更多相关文章

  1. MFC之键盘和键盘消息处理

    今天学习了最基本的MFC操作,键盘及键盘消息函数,跟着书中的内容自己编了个小程序.检测用户是否同时按下SHIFT和B键 第一步:先是建了一个单文档模式的MFC程序,添加了键盘消息及处理函数.键盘消息处 ...

  2. C#模拟鼠标键盘控制其他窗口(一)

    编写程序模拟鼠标和键盘操作可以方便的实现你需要的功能,而不需要对方程序为你开放接口.比如,操作飞信定时发送短信等.我之前开发过飞信耗子,用的是对飞信协议进行抓包,然后分析协议,进而模拟协议的执行,开发 ...

  3. 【Unity3D】使用鼠标键盘控制Camera视角(即时战略类游戏视角):缩近,拉远,旋转

    今天写一个demo,要用到鼠标键盘控制三维视角,因此写了个脚本用于控制. 该脚本可以用于即时战略类游戏的视角,提供了缩进,拉伸,旋转.同时按住鼠标右键不放,移动鼠标可以实现第一人称视角的效果. usi ...

  4. Linux 模拟 鼠标 键盘 事件

    /************************************************************************ * Linux 模拟 鼠标 键盘 事件 * 说明: ...

  5. .Net WinForm 控件键盘消息处理剖析

    在WinForm控件上我们可以看到很多关于键盘消息处理的方法,比如OnKeyDown, OnKeyPress, ProcessCmdKey, ProcessDialogKey,IsInputKey等等 ...

  6. Python3+Selenium2完整的自动化测试实现之旅(四):Selenium-webdriver操作浏览器、Cookie、鼠标键盘、警示框、设置等待时间、多窗口切换

    本篇学习总结webdriver模块操作浏览器.Cookie.鼠标键盘.警示框.设置等待时间.多窗口切换等方法的使用 1    浏览器控制 Selenium-webdriverAPI提供了对页面元素定位 ...

  7. usb的hid鼠标键盘报告描述符(五)

    title: usb的hid鼠标键盘报告描述符 tags: linux date: 2018/12/20/ 18:05:08 toc: true --- usb的hid鼠标键盘报告描述符 https: ...

  8. python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

    0.关键实现:程序窗口前置 python 通过js控制滚动条拉取全文 通过psutil获取pid窗口句柄,通过win32gui使程序窗口前置 通过pyauto实现右键菜单和另存为操作 1.参考 aut ...

  9. 使用Gadget 做usb鼠标键盘设备

    使用Gadget 做usb鼠标键盘设备 感谢TI社区提供的好帮助啊!http://e2e.ti.com/support/arm/sitara_arm/f/791/p/571771/2103409?pi ...

随机推荐

  1. 如何编写 Makefile

     1. 目标 依赖 命令 make会比较targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的 ...

  2. QPixmap显示图片 并 修改图片

    http://hi.baidu.com/eygaqurchnbhsyq/item/2b9624006120f2edff240d42 QPixmap显示图片 现在我们来实现在窗口上显示图片,并学习怎样将 ...

  3. flask--Wtform

    一.Wtform WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证. 安装:    pip3 install wtform 用途:  1. 用户登录注册       ...

  4. Struts2架构流程

    [Struts2] Action实现. interceptor实现. Filter工作原理. 使用 拦截器来处理请求. 业务逻辑控制器与 Servlet API分离. ================ ...

  5. java: scanner(输入流)文本扫描类

    //scanner是接受system.in输入流的操作类 //scanner同时也支持文件输入流的操作 //一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器 Scanner scan = ...

  6. shell脚本:利用7z备份git项目

    注:无git的方法参见:tar 或 7z 备份项目 首先利用homebrew安装p7zip $ brew install p7zip 然后利用两个shell脚本: backupProject.sh 会 ...

  7. java.net.SocketException: No buffer space available 异常

    http://stackoverflow.com/questions/10088363/java-net-socketexception-no-buffer-space-available-maxim ...

  8. HACMP5.4常用命令

    整理自己在AIX5.3平台上配置HACMP5.4高可用环境时用到的一些命令. 操作系统相关 1. 查看操作系统版本 oslevel -r    查看当前系统最终版本 oslevel -s    查看当 ...

  9. python--pycharm汉化

    一.准备工具 1.pycharm软件 2.汉化包 二.解压汉化包 三.将resources_cn.jar复制到pycharm文件中lib目录下 四.重新打开pycharm

  10. python导入图片

    一.导入图片资源 方法1:直接从源图片中导(图片位于images文件夹内) self.label1=QLabel(self)self.label1.setPixmap(QPixmap(r"i ...