欢迎来到天天文库
浏览记录
ID:37714663
大小:193.20 KB
页数:6页
时间:2019-05-29
《windows消息机制》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、windows消息机制消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。 基于windows的应用程序是基于事件驱动的。他们不会显式地调用函数获得输入,而是等待操作系统把输入传给应用程序。一个消息从产生到被一个窗口响应,其中有5个步骤: 1)系统中发生了某个事件。 2)Windows把这个事件翻译为消息,然后把它放到消息队列中。 3)应用程序从消息队列中接收到这个消息,把它存放在TMsg记录中。 4)应用程序把消息传递给一个适当的窗口的窗口过程。
2、5)窗口过程响应这个消息并进行处理。一、消息类型消息主要分为两种:一是系统定义消息;二是自定义消息。(1)系统定义消息 每一个系统定义消息都有一个唯一的消息标识符和相对应的符号常量(在系统SDK的头文件中定义的),这些标识符和常量代表着消息意图。常量的前缀代表着可以解释处理消息的窗口的类型,一般情况下,第一个字母为控件的头一个字母,第二个字母是M的是消息(Message)常量,S是风格(Style)常量,N是通知、事件(Notify)。下面列出系统定义消息的前缀所代表的消息类别的清单。PrefixMessagecategoryABM Applicat
3、iondesktoptoolbar BM Buttoncontrol CB Comboboxcontrol CBEM ExtendedcomboboxcontrolCDM Commondialogbox DBT Device DL Draglistbox DM Defaultpushbuttoncontrol DTM DateandtimepickercontrolEM Editcontrol HDM Headercontrol HKM HotkeycontrolIPM IPa
4、ddresscontrolLB Listboxcontrol LVM Listviewcontrol MCM MonthcalendarcontrolPBM Progressbar PGM PagercontrolPSM Propertysheet RB RebarcontrolSB Statusbarwindow SBM Scrollbarcontrol STM Staticcontrol TB Toolbar TBM Trackbar TCM Tabcontrol T
5、TM Tooltipcontrol TVM Tree-viewcontrol UDM Up-downcontrolWM Generalwindow 在SDK中事先定义好的消息,非用户定义的,其范围在[0x0000,0x03ff]之间,还可以分为以下三类:1>窗口消息(WindowsMessage)与窗口的内部运作有关,如创建窗口,绘制窗口,销毁窗口等。可以是一般的窗口,也可以是Dialog,控件等。如:WM_CREATE,WM_PAINT,WM_MOUSEMOVE,WM_CTLCOLOR,WM_HSCROLL...2>命令消息(C
6、ommandMessage)与处理用户请求有关,如单击菜单项或工具栏或控件时,就会产生命令消息。WM_COMMAND,LOWORD(wParam)表示菜单项,工具栏按钮或控件的ID。如果是控件,HIWORD(wParam)表示控件消息类型3>控件通知(NotifyMessage)控件通知消息,这是最灵活的消息格式,其Message,wParam,lParam分别为:WM_NOTIFY,控件ID,指向NMHDR的指针。NMHDR包含控件通知的内容,可以任意扩展。(2)程序定义消息用户自定义的消息,对于其范围有如下规定:WM_USER:0x0400-0x7FF
7、F(ex.WM_USER+10)WM_APP(winver>4.0):0x8000-0xBFFF(ex.WM_APP+4)RegisterWindowMessage:0xC000-0xFFFF 应用程序定义消息的消息标识符取值定义规则应该遵循如下原则: A.系统对0x0000到0x03ff(WM_USER-1)都保留为系统定义消息,因此应用程序不能使用这些值来定义应用程序定义消息。 B.取值范围为0x0400(WM_USER)-0x7FFF,可以用来定义自定义消息的消息标识符取值。 C.假如你的应用程序是在4.0上的系统运行,那么你可以使用0x800
8、0(WM_APP)-0xBFFF范围的值作为私有消息的标识符取值。
此文档下载收益归作者所有