主要内容:介绍Windows编程中常用的消息

  1.WM_LBUTTONDOWN产生单击鼠标左键的消息
    lParam:

      低字节包含当前光标的X坐标值  X = LOWORD(lParam);

      高字节包含当前光标的Y坐标值  Y = HIWORD(lParam);

    wParam: 包含一组整数值,用来标识鼠标键的按下状态
      可以通过switch-case来使用它
    

    给出几个按下状态
        MK_LBUTTON        按下鼠标左键
        MK_MBUTTON        按下鼠标中键
        MK_RBUTTON        按下鼠标右键
        MK_SHIFT          按下SHIFT键
        MK_CONYROL        按下Ctrl键
    例子:
      case WM_LBUTTONDOWN:
      if(wParam & MK_SHIFT) //若shift也有按下

  2.此外,相似的消息还有:
        WM_LBUTTONDOWN      按下鼠标左键时产生
        WM_LBUTTONUP       松开鼠标左键时产生
        WM_RBUTTONDOWN      按下鼠标右键时产生
        WM_RBUTTONUP      松开鼠标右键时产生
        WM_LBUTTONDBLCLK    双击鼠标左键时产生
        WM_RBUTTONDBLCLK     双击鼠标右键时产生
        WM_MOUSEMOVE      鼠标经过窗口的显示区域时产生
        WM_MBUTTONDOWN      按下鼠标中键时产生
        WM_MBUTTONUP       松开鼠标中键时产生

  3.WM_KEYDOWN 按下一个非系统键时产生的消息
    <1>系统键:是指实现系统操作的组合键,
      例如Alt与某个功能键的组合以实现系统菜单操作等,
      非系统键就是不与alt联用的键

    注解:
      凡是ALT和其它键一同按下的组合称为“系统键”,
      窗口收到系统键之后,会自动地将它解释成系统事件,
      或者查阅键盘加速表,将系统键翻译成加速表指定的信息。
      如:ALT+F4的组合会迫使窗口关闭,“ALT+字母”的组合可能会拉下某个菜单。

      非系统键就是不按下ALT键时的按键(比如单一按键)

    <2> wParam:虚拟码,用以标识按下或释放的键
      lParam:记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息

    <3>相似的还有WM_KEYUP,在放开非系统键时产生的消息

    <4>虚拟键以VK_开头进行标识,如VK_SHIFT,VK_LBUTTON等

  3.其他常见消息
    

    <1> WM_CHAR 按下一个非系统键时产生的消息
      wParam 为按键的ASCII码 lParam 与WM_KEYDOWN相同

    <2> WM_CREATE:由CreateWindow函数发出的消息
      wParam 未用
      lParam 包含一个指向CREATESTRUCT数据结构的指针

    <3> WM_CLOSE:关闭窗口时产生的消息

      wParam和lParam均未使用
    
      wParam和lParam均未使用
    <5> WM_QUIT:由PostQuitMessage函数发出的消息
      wParam 含退出代码,标识程序退出运行时的有关信息

1-3-2 Windows应用程序常用消息的更多相关文章

  1. 【转】windows常用消息大全(系统消息、通告消息、用户消息)

    原文网址:http://blog.csdn.net/nupt123456789/article/details/7370562 附录A Windows 常用消息大全 表A-1  Windows消息分布 ...

  2. [C#菜鸟]C# Hook (三) Windows常用消息大全

    表A-1  Windows消息分布 消息范围 说 明 0 - WM_USER – 1 系统消息 WM_USER - 0x7FFF 自定义窗口类整数消息 WM_APP - 0xBFFF 应用程序自定义消 ...

  3. Windows 常用消息及含义

      消息范围 说明 0 - WM_USER – 1 系统消息 WM_USER - 0x7FFF 自定义窗口类整数消息 WM_APP - 0xBFFF 应用程序自定义消息 0xC000 - 0xFFFF ...

  4. Windows窗体应用程序常用的几个类的属性、方法以及事件

    System.Diagnostics.Process 属性 public bool EnableRaisingEvents { get; set; }//获取或设置在进程终止时是否应激发 Exited ...

  5. Windows窗口程序从创建到关闭产生的消息

    Windows是消息驱动的,理解消息机制及消息循环是特别重要.知道在什么情况下产生什么消息会让我们对程序有更好的控制.Windows给应用程序发消息,有些会加入应用程序的消息队列,也是就是队列消息.有 ...

  6. SendMessage函数的常用消息及其应用大全

    来源:http://www.360doc.com/content/09/0814/10/19147_4907488.shtml,非常全面的解释. 文本框控件通常用于输入和编辑文字.它属于标准 Wind ...

  7. windows应用程序框架及实例

    应用程序框架:同一类型应用程序的结构大致相同,并有很多相同的源代码,因此可以通过一个应用程序框架AFX(Application FrameWorks)编写同一类型应用程序的通用源代码. 主要向导: D ...

  8. 【系统篇】从int 3探索Windows应用程序调试原理

    探索调试器下断点的原理 在Windows上做开发的程序猿们都知道,x86架构处理器有一条特殊的指令——int 3,也就是机器码0xCC,用于调试所用,当程序执行到int 3的时候会中断到调试器,如果程 ...

  9. 1-1 Windows应用程序的特点

    主要内容:介绍Windows应用程序的特点,并附加了消息和事件的一些区别 //以后该分类中字体均采用 隶书 4(14pt) 1. 面向对象 <1>针对Windows应用本身,如记事本界面, ...

随机推荐

  1. Android 圆形ProgressBar风格设置

    Android系统自带的ProgressBar风格不是很好,如果想自己设置风格的话,一般有几种方法.首先介绍一下第一种方法通过动画实现.在res的anim下创建动画资源loading.xml: < ...

  2. C++全局变量的声明和定义

    (1)编译单元(模块)     在VC或VS上编写完代码,点击编译按钮准备生成exe文件时,编译器做了两步工作: 第一步,将每个.cpp(.c)和相应的.h文件编译成obj文件: 第二步,将工程中所有 ...

  3. 【转】clang warning 警告清单(备查,建议直接command + F 速查 )

    Warning Message -WCFString-literal input conversion stopped due to an input byte that does not belon ...

  4. tableviewcell的取消选中,高亮

    1.取消多余cell的分割线 UIView *view = [UIView new]; view.backgroundColor = [UIColor clearColor]; [tableView ...

  5. java互斥方法

    synchronized,  lock/unlock,  volatile类型变量, atom类, 同步集合,  新类库中的构件: CountDownLatch\CyclicBarric\Semaph ...

  6. Mousejack测试指南

    0x00 前言 近日,Bastille的研究团队发现了一种针对蓝牙键盘鼠标的攻击,攻击者可以利用漏洞控制电脑操作,他们将此攻击命名为MouseJack. 攻击者仅需要在亚马逊上以60美元购买设备,改造 ...

  7. HackRF实现无线门铃信号分析重放

    文章特点:数据解码方面实在是没什么信心,存在分析错乱的可能性,所幸发出来共同探讨,恳请鞭策. 0x01 概述 这是一款工作在315Mhz频段的无线遥控门铃,根据查阅官方手册以及芯片信息,确定其采用了e ...

  8. 求一个数组中最小的K个数

    方法1:先对数组进行排序,然后遍历前K个数,此时时间复杂度为O(nlgn); 方法2:维护一个容量为K的最大堆(<算法导论>第6章),然后从第K+1个元素开始遍历,和堆中的最大元素比较,如 ...

  9. 爬虫学习----pattern

    1.match match(string[, pos[, endpos]]) | re.match(pattern, string[, flags]): 这个方法将从string的pos下标处起尝试匹 ...

  10. 解决:未找到setenv命令

    在Ubuntu12.04中配置python环境变量:setenv PATH "$PATH:/usr/local/bin/python",提示未找到setenv命令. 为什么呢?这是 ...