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. python爬取糗事百科段子

    初步爬取糗事百科第一页段子(发布人,发布内容,好笑数和评论数) #-*-coding:utf--*- import urllib import urllib2 import re page = url ...

  2. HDU 3966 & POJ 3237 & HYSBZ 2243 & HRBUST 2064 树链剖分

    树链剖分是一个很固定的套路 一般用来解决树上两点之间的路径更改与查询 思想是将一棵树分成不想交的几条链 并且由于dfs的顺序性 给每条链上的点或边标的号必定是连着的 那么每两个点之间的路径都可以拆成几 ...

  3. java collection接口源码

    package java.util; 02. 03./* 04.* 1.Collection接口是集合继承关系中的根接口(root interface),有些集合允许重复元素, 05.* 有些集合有序 ...

  4. Windows 安装Mysql8.0 绿色包

    〇.准备: MySQL8.0 Windows zip包下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 环 ...

  5. 基于CSS3金属风格下拉菜单

    基于CSS3金属风格下拉菜单,css,金属风格,下拉菜单,CSS3导航. css3按钮:http://www.huiyi8.com/css3/anniu/

  6. mouseenter和hover的区别

    js中鼠标事件中,mouseenter和hover都可以达到,鼠标悬浮在目标上,触发事件,那么两者效果相同,有什么区别呢. 经过自己亲自试验.发现,mouseenter和hover还是有区别的. ho ...

  7. poj 2513 欧拉图/trie

    http://poj.org/problem?id=2513 Colored Sticks Time Limit: 5000MS   Memory Limit: 128000K Total Submi ...

  8. (转)android webview用法小结

    原文地址:http://blog.csdn.net/ethan_xue/article/details/7841431 将webview里常用的东西拿出来分享下 想要webview加载页面,只需web ...

  9. 第二次ScrumMeeting

    每个人的工作(有Issue的内容和链接):昨天已完成的工作,今天计划完成的工作:工作中遇到的困难. 团队成员 昨日完成任务 明日要完成的任务 易子沐 前端框架学习 issue16 搭建主页框架 iss ...

  10. middle school

    One of the most difficult transitions faced by parents and youth is that of going from elementary to ...