主要内容:介绍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. Cisco IOS Debug Command Reference I through L

    debug iapp through debug ip ftp debug iapp : to begin debugging of IAPP operations(in privileged EXE ...

  2. CentOS 6.4 U盘启动问题的解决

    替换syslinux/目录下的vesamenu.c32文件. 下载地址: http://pan.baidu.com/s/1mg8xce8

  3. iOS开发多线程篇—线程间的通信(转)

    这里转载 给自己一个备份 一.简单说明 线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特定任务后,转 ...

  4. 命令行BASH

    shell 壳,把用户的指令翻译给内核kernel,真正工作的是内核 shell分为cli(command line interface)和gui(graphical user interface) ...

  5. jQuery 自定义扩展,与$冲突处理

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. iOS App上架流程(2016详细版

    http://www.jianshu.com/p/b1b77d804254 iOS App上传项目遇到的问题 http://www.jianshu.com/p/9195cd991fc7

  7. iOS上架(转)

    自己的经验总结,有错的话请留言,第一时间更改. 先大概说一下IOSAPP上架的几个步骤(详细步骤见下图): 创建证书请求文件 登录苹果开发者中心生成发布者证书(下载下来要双击一下) 设置APPID(要 ...

  8. tip use view.isineditmode() in your custom views to skip code when shown in eclipse

    tip use view.isineditmode() in your custom views to skip code when shown in eclipse

  9. android死机问题

    一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法模拟的情况下,只能上硬件(盒子或手机)上进行调试.此时唯一的调试手段就是logca ...

  10. Squid代理之普通代理

    1.配置Squid 代理服务器IP地址 将eth1的IP地址修改为200.168.10.1