工作-windows-消息

原创 2013年07月12日 23:36:03

键盘消息是WM_KEYUP、WM_KEYDOWN.

然后我以为文本框字增加减少是键盘消息,后来才发现原来是弄错了,应该是WM_COMMAND.

百度了一下该消息:

WM_COMMAND消息
当用户点击菜单、按钮、下拉列表框等控件时候,会触发WM_COMMAND

wParam的高低位可区分该消息

Message Source wParam (high word) wParam (low word) lParam
Menu 0 Menu identifier (IDM_*) 0
Accelerator 1 Accelerator identifier (IDM_*) 0
Control Control-defined notification code Control identifier Handle to the control window

 

菜单--不说了

Accelerator

Keyboard accelerator processing model

消息被消息循环监控,如果发现这个键盘消息是Accelerator消息的话,就会把键盘消息转化为WM_COMMAND、WM_SYSCOMMAND消息发给相应的窗口。

对于WM_SYSCOMMAND 中如果是系统菜单的消息,都必须要交给DefWindowProc 来处理,并且将返回值返回给Windows ,不然你会发现不能拖动窗体、改变大小、最大最小化操作等。因为你如果不交给DefWindowProc 处理,相当于屏蔽了SC_RESTORE、SC_MOVE、SC_MAXIMIZE、SC_MINIMIZE、SC_CLOSE 等等操作了。这些命令都是通过Windows 投递WM_SYSCOMMAND 消息,在DefWindowProc 中进行处理的。

Notification Code的命名规律:
列表框:   LBN_*****   
组合框:   CBN_****
Tab框:    TBN_****
按钮:    BN_*****
Edit :    EN_*****


本文为摘录及整理,并非完全原创。如有错误,欢迎指正。



Windows窗口消息大全,全不全自己看

Windows窗口消息大全,全不全自己看 ////////////////////////////////////////////////////////////////////////// ...
  • sergery
  • sergery
  • 2013年06月01日 14:27
  • 2609

消息队列技术的介绍和原理(MQ)

消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待...
  • andybbc
  • andybbc
  • 2016年02月23日 15:42
  • 18047

消息队列技术和原理

消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待...
  • liuliangsailor
  • liuliangsailor
  • 2014年01月15日 18:05
  • 484

Android的消息机制——Handler的工作过程

在Android系统中,出于对性能优化的考虑,对于Android的UI操作并不是线程安全的。也就是说若是有多个线程来操作UI组件,就会有可能导致线程安全问题。所以在Android中规定只能在UI线程中...
  • ljd2038
  • ljd2038
  • 2016年03月14日 20:54
  • 6899

轻松搞定RabbitMQ(二)——工作队列之消息分发机制

上一篇博文中简单介绍了一下RabbitMQ的基础知识,并写了一个经典语言入门程序——HelloWorld。本篇博文中我们将会创建一个工作队列用来在工作者(consumer)间分发耗时任务。同样是翻译的...
  • xiaoxian8023
  • xiaoxian8023
  • 2015年09月24日 18:46
  • 10211

windows程序设计——消息循环

主窗口显示出来了,WinMain就开始处理消息了,怎么做的呢? Windows为每个正在运行的应用程序都保持一个消息队列。当你按下鼠标或者键盘时,Windows并不是把这个输入事件直接送给应用程序,...
  • misterdo
  • misterdo
  • 2015年05月17日 09:57
  • 1006

Windows-程序运行原理

Windows程序运行原理1.应用程序,操作系统,硬件之间的关系 这里涉及到消息及消息队列, 操作系统是通过消息机制(Message)来将感知到的事件传递给应用程序的。 操作系统将每个事...
  • qq_22075977
  • qq_22075977
  • 2016年04月20日 22:05
  • 3533

Windows-定制应用程序外观

Windows-定制程序外观 简介:介绍常用的应用程序外观属性的操作 一 修改应用程序窗口的外观 1.在窗口创建之前修改 需要在框架窗口的CMainFrame::PreCreateWindow...
  • qq_22075977
  • qq_22075977
  • 2016年06月02日 20:53
  • 857

消息队列MQ技术的介绍和原理

消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待...
  • xyw591238
  • xyw591238
  • 2016年03月29日 15:46
  • 615

工作线程中利用handler向主线程发送消息

首先,可以先了解下线程间通信时Message,Handler,MessageQueue,Looper之间的关系解释下. Handler获取当前线程中的looper对象,looper用来从存放Mess...
  • mazhichen1991
  • mazhichen1991
  • 2016年05月21日 11:53
  • 738
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:工作-windows-消息
举报原因:
原因补充:

(最多只允许输入30个字)