Windows消息大全

来源:互联网 发布:淘宝10.11事变结果 编辑:程序博客网 时间:2024/06/06 05:16

本文转自:http://blog.csdn.net/weiqubo/article/details/7026373


消息映射宏的种类:

为了简化程序员的工作,MFC定义了一系列的消息映射宏和像AfxSig_vv这样的枚举变量,以及标准消息处理函数,并且具体地实现这些函数。这里主要讨论消息映射宏,常用的分为以下几类。

 

1. 用于Windows消息的宏,前缀为“ON_WM_”。

这样的宏不带参数,因为它对应的消息和消息处理函数的函数原型是确定的。

MFC提供了这类消息处理函数的定义和缺省实现。每个这样的宏处理不同的Windows消息。例如:宏ON_WM_CREATE()把消息WM_CREATE映射到OnCreate函数,消息映射条目的第一个成员nMessage指定为要处理的Windows消息的ID,第二个成员nCode指定为0。

 

2. 用于命令消息的宏ON_COMMAND

这类宏带有参数,需要通过参数指定命令ID和消息处理函数。这些消息都映射到WM_COMMAND上,也就是将消息映射条目的第一个成员nMessage指定为WM_COMMAND,第二个成员nCode指定为CN_COMMAND(即0)。消息处理函数的原型是void (void),不带参数,不返回值。

除了单条命令消息的映射,还有把一定范围的命令消息映射到一个消息处理函数的映射宏ON_COMMAND_RANGE。这类宏带有参数,需要指定命令ID的范围和消息处理函数。这些消息都映射到WM_COMMAND上,也就是将消息映射条目的第一个成员nMessage指定为WM_COMMAND,第二个成员nCode指定为CN_COMMAND(即0),第三个成员nID和第四个成员nLastID指定了映射消息的起止范围。消息处理函数的原型是void (UINT),有一个UINT类型的参数,表示要处理的命令消息ID,不返回值。

 

3. 用于控制通知消息的宏

这类宏可能带有三个参数,如ON_CONTROL,就需要指定控制窗口ID,通知码和消息处理函数;也可能带有两个参数,如具体处理特定通知消息的宏ON_BN_CLICKED、ON_LBN_DBLCLK、ON_CBN_EDITCHANGE等,需要指定控制窗口ID和消息处理函数。控制通知消息也被映射到WM_COMMAND上,也就是将消息映射条目的第一个成员的nMessage指定为WM_COMMAND,但是第二个成员nCode是特定的通知码,第三个成员nID是控制子窗口的ID,第四个成员nLastID等于第三个成员的值。消息处理函数的原型是void (void),没有参数,不返回值。

 

还有一类宏处理通知消息ON_NOTIFY,它类似于ON_CONTROL,但是控制通知消息被映射到WM_NOTIFY。消息映射条目的第一个成员的nMessage被指定为WM_NOTIFY,第二个成员nCode是特定的通知码,第三个成员nID是控制子窗口的ID,第四个成员nLastID等于第三个成员的值。消息处理函数的原型是void (NMHDR*,LRESULT*),参数1是NMHDR指针,参数2是LRESULT指针,用于返回结果,但函数不返回值。

 

对应地,还有把一定范围的控制子窗口的某个通知消息映射到一个消息处理函数的映射宏,这类宏包括ON__CONTROL_RANGE和ON_NOTIFY_RANGE。这类宏带有参数,需要指定控制子窗口ID的范围和通知消息,以及消息处理函数。

对于ON__CONTROL_RANGE,是将消息映射条目的第一个成员的nMessage指定为WM_COMMAND,但是第二个成员nCode是特定的通知码,第三个成员nID和第四个成员nLastID等于指定了控制窗口ID的范围。消息处理函数的原型是void (UINT),参数表示要处理的通知消息是哪个ID的控制子窗口发送的,函数不返回值。

对于ON__NOTIFY_RANGE,消息映射条目的第一个成员的nMessage被指定为WM_NOTIFY,第二个成员nCode是特定的通知码,第三个成员nID和第四个成员nLastID指定了控制窗口ID的范围。消息处理函数的原型是void (UINT, NMHDR*,LRESULT*),参数1表示要处理的通知消息是哪个ID的控制子窗口发送的,参数2是NMHDR指针,参数3是LRESULT指针,用于返回结果,但函数不返回值。

 

4. 用于用户界面接口状态更新的ON_UPDATE_COMMAND_UI宏

这类宏被映射到消息WM_COMMND上,带有两个参数,需要指定用户接口对象ID和消息处理函数。消息映射条目的第一个成员nMessage被指定为WM_COMMAND,第二个成员nCode被指定为-1,第三个成员nID和第四个成员nLastID都指定为用户接口对象ID。消息处理函数的原型是void (CCmdUI*),参数指向一个CCmdUI对象,不返回值。

 

对应地,有更新一定ID范围的用户接口对象的宏ON_UPDATE_COMMAND_UI_RANGE,此宏带有三个参数,用于指定用户接口对象ID的范围和消息处理函数。消息映射条目的第一个成员nMessage被指定为WM_COMMAND,第二个成员nCode被指定为-1,第三个成员nID和第四个成员nLastID用于指定用户接口对象ID的范围。消息处理函数的原型是 void (CCmdUI*),参数指向一个CCmdUI对象,函数不返回值。之所以不用当前用户接口对象ID作为参数,是因为CCmdUI对象包含了有关信息。

 

5. 用于其他消息的宏

例如用于用户定义消息的ON_MESSAGE。这类宏带有参数,需要指定消息ID和消息处理函数。消息映射条目的第一个成员nMessage被指定为消息ID,第二个成员nCode被指定为0,第三个成员nID和第四个成员也是0。消息处理的原型是LRESULT (WPARAM, LPARAM),参数1和参数2是消息参数wParam和lParam,返回LRESULT类型的值。

 

6. 扩展消息映射宏

很多普通消息映射宏都有对应的扩展消息映射宏,例如:ON_COMMAND对应的

ON_COMMAND_EX,ON_ONTIFY对应的ON_ONTIFY_EX,等等。扩展宏除了具有普通宏的功能,还有特别的用途。关于扩展宏的具体讨论和分析,见4.4.3.2节。

 

作为一个总结,下表列出了这些常用的消息映射宏。

表4-1 常用的消息映射宏

消息映射宏                                          用途

ON_COMMAND                   把command message映射到相应的函数

 

ON_CONTROL                    把control notification message映射到相应的函数。MFC根据不同的控制消息,在此基础上定义了更具体的宏,这样用户在使用时就不需要指定通知代码ID,如ON_BN_CLICKED。

 

ON_MESSAGE                    把user-defined message.映射到相应的函数

 

ON_REGISTERED_MESSAGE       把registered user-defined message映射到相应的函数,实际上nMessage等于0x0C000,nSig等于宏的消息参数。nSig的真实值为Afxsig_lwl。

 

ON_UPDATE_COMMAND_UI       把user interface user updatecommandmessage映射到相应的函数上。

 

ON_COMMAND_RANGE           把一定范围内的command IDs 映射到相应的函数上

 

ON_UPDATE_COMMAND_UI_RANGE 把一定范围内的user interface user update command message映射到相应的函数上

 

ON_CONTROL_RANGE            把一定范围内的control notification  message映射到相应的函数

 

WINDOWS消息说明

 

我在实际编程中越来越感到消息的响应在我们的程序中是一个非常重要的部分,有一些普通的消息我们可以在ClassWizard的添加其响应函数,但就算我们能找到一些消息但有的时候也不知道是什么意思,响应他有什么用,还有一些特殊的消息是在ClassWizard里没有的,只有有丰富经验的才知道,这对我们操作程序带来很大不便,所以我在此提议各位朋友把自己知道的消息以及参数还有VC里默认的响应函数列举出来,尽自己的努力帮助大家了解windows的消息,也帮助自己,在此我先抛砖引玉:

 

消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的:

 

type

TMsg = packed record

hwnd: HWND;            //窗口句柄

message: UINT;           //消息常量标识符

wParam: WPARAM ;   // 32位消息的特定附加信息

lParam: LPA RAM ;    // 32位消息的特定附加信息

time: DWORD;            //消息创建时的时间

pt: TPoint;                   //消息创建时的鼠标位置

end ;

 

消息中有什么?是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释:

 

hwnd

32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。

message

用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。

wParam

通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。

lParam

通常是一个指向内存中数据的指针。由于WParam、lParam和Pointer都是32位的,因此,它们之间可以相互转换。

 

在vc.net 中很多函数名字有了变化,和vc6 中有点不同了。如果你想看消息windows.h文件中声明了所有的消息

 

 

(#add 待整理,按字母排序)   我需要一个消息 ,对应消息宏 及消息处理函数的表

Windows消息

  WM_NULL                     =$0000;

  WM_CREATE                   =$0001;应用程序创建一个窗口

  WM_DESTROY                 =$0002;一个窗口被销毁

  WM_MOVE                    =$0003;移动一个窗口

  WM_SIZE                     =$0005;改变一个窗口的大小

  WM_SIZING                   =532;当用户正在调整窗口大小时发送此消息给窗口;通过此消息应用程序可以监视窗口大小和位置也可以修改他们

  WM_ACTIVATE                 =$0006;一个窗口被激活或失去激活状态;

  WM_SETFOCUS                =$0007;获得焦点后

  WM_KILLFOCUS               =$0008;失去焦点

  WM_ENABLE                   =$000A;改变enable状态

  WM_SETREDRAW              = $000B;设置窗口是否能重画

  WM_SETTEXT                =$000C;应用程序发送此消息来设置一个窗口的文本

  WM_GETTEXT                 =$000D;应用程序发送此消息来复制对应窗口的文本到缓冲区

  WM_GETTEXTLENGTH       =$000E;得到与一个窗口有关的文本的长度(不包含空字符)

  WM_PAINT                   =$000F;要求一个窗口重画自己

  WM_CLOSE                   =$0010;当一个窗口或应用程序要关闭时发送一个信号

  WM_QUERYENDSESSION     = $0011;当用户选择结束对话框或程序自己调用ExitWindows函数

  WM_QUIT                       =$0012;用来结束程序运行或当程序调用postquitmessage函数

  WM_QUERYOPEN                 = $0013;当用户窗口恢复以前的大小位置时,把此消息发送给某个图标

  WM_ERASEBKGND               = $0014;当窗口背景必须被擦除时(例在窗口改变大小时)

  WM_SYSCOLORCHANGE     =$0015;当系统颜色改变时,发送此消息给所有顶级窗口

  WM_ENDSESSION             =$0016;当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,通知它对话是否结束

  WM_SYSTEMERROR   =$0017;

  WM_SHOWWINDOW          =$0018;当隐藏或显示窗口是发送此消息给这个窗口

  WM_ACTIVATEAPP               = $001C;发此消息给应用程序哪个窗口是激活的,哪个是非激活的;

  WM_FONTCHANGE            =$001D;当系统的字体资源库变化时发送此消息给所有顶级窗口

  WM_TIMECHANGE           = $001E;当系统的时间变化时发送此消息给所有顶级窗口

  WM_CANCELMODE          =$001F;发送此消息来取消某种正在进行的摸态(操作)

  WM_SETCURSOR               =$0020;如果鼠标引起光标在某个窗口中移动且鼠标输入没有被捕获时,就发消息给某个窗口

  WM_MOUSEACTIVATE         =$0021;当光标在某个非激活的窗口中而用户正按着鼠标的某个键发送此消息给当前窗口

  WM_CHILDACTIVATE      =$0022;发送此消息给MDI子窗口当用户点击此窗口的标题栏,或当窗口被激活,移动,改变大小

  WM_QUEUESYNC                =$0023;此消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACK的hook程序分离出用户输入消息

  WM_GETMINMAXINFO    = $0024;此消息发送给窗口当它将要改变大小或位置;

  WM_PAINTICON             =$0026;发送给最小化窗口当它图标将要被重画

  WM_ICONERASEBKGND     =$0027;  此消息发送给某个最小化窗口,仅当它在画图标前它的背景必须被重画

  WM_NEXTDLGCTL           =$0028;发送此消息给一个对话框程序去更改焦点位置

  WM_SPOOLERSTATUS         =$002A;每当打印管理列队增加或减少一条作业时发出此消息

  WM_DRAWITEM               =$002B;  当button,combobox,listbox,menu的可视外观改变时发送此消息给这些空件的所有者

  WM_MEASUREITEM   = $002C;当button, combo box, list box, list view control, or menu item 被创建时发送此消息给控件的所有者

  WM_DELETEITEM             =$002D;当the list box 或 combo box 被销毁 或 当 某些项被删除通过LB_DELETESTRING, LB_R

ESETCONTENT, CB_DELETESTRING, or CB_RESETCONTENT 消息

  WM_VKEYTOITEM             =$002E;此消息有一个LBS_WANTKEYBOARDINPUT风格的发出给它的所有者来响应WM_KEYDOWN消息 

  WM_CHARTOITEM             =$002F;此消息由一个LBS_WANTKEYBOARDINPUT风格的列表框发送给他的所有者来响应WM_CHAR消息

  WM_SETFONT                =$0030;当绘制文本时程序发送此消息得到控件要用的颜色

  WM_GETFONT                =$0031;应用程序发送此消息得到当前控件绘制文本的字体

  WM_SETHOTKEY              =$0032;应用程序发送此消息让一个窗口与一个热键相关连

  WM_GETHOTKEY              =$0033;应用程序发送此消息来判断热键与某个窗口是否有关联

  WM_QUERYDRAGICON       =$0037;此消息发送给最小化窗口,当此窗口将要被拖放而它的类中没有定义图标,应用程序能返回一个图标或光标的句柄,当用户拖放图标时系统显示这个图标或光标

  WM_COMPAREITEM   =$0039;发送此消息来判定combobox或listbox新增加的项的相对位置

  WM_GETOBJECT              =$003D;

  WM_COMPACTING            =$0041;显示内存已经很少了

  WM_WINDOWPOSCHANGING =$0046;发送此消息给那个窗口的大小和位置将要被改变时,来调用setwindowpos函数或其它窗口管理函数

  WM_WINDOWPOSCHANGED = $0047;发送此消息给那个窗口的大小和位置已经被改变时,来调用setwindowpos函数或其它窗口管理函数

  WM_POWER                         = $0048;(适用于16位的windows)当系统将要进入暂停状态时发送此消息

  WM_COPYDATA           =$004A;当一个应用程序传递数据给另一个应用程序时发送此消息

  WM_CANCELJOURNAL = $004B;当某个用户取消程序日志激活状态,提交此消息给程序

  WM_NOTIFY                  =$004E;当某个控件的某个事件已经发生或这个控件需要得到一些信息时,发送此消息给它的父窗口

  WM_INPUTLANGCHANGEREQUEST =$0050;当用户选择某种输入语言,或输入语言的热键改变

  WM_INPUTLANGCHANGE    = $0051;当平台现场已经被改变后发送此消息给受影响的最顶级窗口

  WM_TCARD                       =$0052;当程序已经初始化windows帮助例程时发送此消息给应用程序

  WM_HELP                         =$0053;此消息显示用户按下了F1,如果某个菜单是激活的,就发送此消息个此窗口关联的菜单,否则就发送给有焦点的窗口,如果当前都没有焦点,就把此消息发送给当前激活的窗口

  WM_USERCHANGED   =$0054;当用户已经登入或退出后发送此消息给所有的窗口,当用户登入或退出时系统更新用户的具体设置信息,在用户更新设置时系统马上发送此消息;

  WM_NOTIFYFORMAT        =$0055;公用控件,自定义控件和他们的父窗口通过此消息来判断控件是使用ANSI还是UNICODE结构在WM_NOTIFY消息,使用此控件能使某个控件与它的父控件之间进行相互通信

  WM_CONTEXTMENU         =$007B;当用户某个窗口中点击了一下右键就发送此消息给这个窗口  WM_STYLECHANGING  = $007C;当调用SETWINDOWLONG函数将要改变一个或多个 窗口的风格时发送此消息给那个窗口

  WM_STYLECHANGED         =$007D;当调用SETWINDOWLONG函数一个或多个 窗口的风格后发送此消息给那个窗口

  WM_DISPLAYCHANGE        =$007E;当显示器的分辨率改变后发送此消息给所有的窗口

  WM_GETICON                  =$007F;此消息发送给某个窗口来返回与某个窗口有关连的大图标或小图标的句柄;

  WM_SETICON                    = $0080;程序发送此消息让一个新的大图标或小图标与某个窗口关联;

  WM_NCCREATE                   =$0081;当某个窗口第一次被创建时,此消息在WM_CREATE消息发送前发送;

  WM_NCDESTROY              =$0082;此消息通知某个窗口,非客户区正在销毁

  WM_NCCALCSIZE               =$0083;当某个窗口的客户区域必须被核算时发送此消息

  WM_NCHITTEST                =$0084; 移动鼠标,按住或释放鼠标时发生

  WM_NCPAINT                     =$0085;程序发送此消息给某个窗口当它(窗口)的框架必须被绘制时;

  WM_NCACTIVATE                =$0086;此消息发送给某个窗口 仅当它的非客户区需要被改变来显示是激活还是非激活状态;

  WM_GETDLGCODE    =$0087;发送此消息给某个与对话框程序关联的控件,widdows控制方位键和TAB键使输入进入此控件通过响应WM_GETDLGCODE消息,应用程序可以把他当成一个特殊的输入控件并能处理它

  WM_NCMOUSEMOVE        =$00A0;当光标在一个窗口的非客户区内移动时发送此消息给这个窗口 //非客户区为:窗体的标题栏及窗

  WM_SYSKEYDOWN          =$0104;当用户按住ALT键同时按下其它键时提交此消息给拥有焦点的窗口;

  WM_SYSKEYUP               =$0105;当用户释放一个键同时ALT 键还按着时提交此消息给拥有焦点的窗口

  WM_SYSCHAR               =$0106;当WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函数翻译后提交此消息给拥有焦点的窗口

  WM_SYSDEADCHAR         =$0107;当WM_SYSKEYDOWN消息被TRANSLATEMESSAGE函数翻译后发送此消息给拥有焦点的窗口

  WM_KEYLAST               =$0108;

  WM_INITDIALOG             =$0110;在一个对话框程序被显示前发送此消息给它,通常用此消息初始化控件和执行其它任务

  WM_COMMAND            =$0111;当用户选择一条菜单命令项或当某个控件发送一条消息给它的父窗口,一个快捷键被翻译

  WM_SYSCOMMAND         =$0112;当用户选择窗口菜单的一条命令或当用户选择最大化或最小化时那个窗口会收到此消息

  WM_TIMER                  =$0113;  发生了定时器事件

  WM_HSCROLL               =$0114;当一个窗口标准水平滚动条产生一个滚动事件时发送此消息给那个窗口,也发送给拥有它的控件

  WM_VSCROLL               =$0115;当一个窗口标准垂直滚动条产生一个滚动事件时发送此消息给那个窗口也,发送给拥有它的控件 

WM_INITMENU                  = $0116;当一个菜单将要被激活时发送此消息,它发生在用户菜单条中的某项或按下某个菜单键,它允许程序在显示前更改菜单

  WM_INITMENUPOPUP       =$0117;当一个下拉菜单或子菜单将要被激活时发送此消息,它允许程序在它显示前更改菜单,而不要改变全部

WM_MENUSELECT              = $011F;当用户选择一条菜单项时发送此消息给菜单的所有者(一般是窗口)

  WM_MENUCHAR             =$0120;当菜单已被激活用户按下了某个键(不同于加速键),发送此消息给菜单的所有者;

  WM_ENTERIDLE             =$0121;当一个模态对话框或菜单进入空载状态时发送此消息给它的所有者,一个模态对话框或菜单进入空载状态就是在处理完一条或几条先前的消息后没有消息它的列队中等待

  WM_MENURBUTTONUP      =$0122;

  WM_MENUDRAG            =$0123;

  WM_MENUGETOBJECT      =$0124;

  WM_UNINITMENUPOPUP    =$0125;

  WM_MENUCOMMAND       =$0126;

  WM_CHANGEUISTATE       =$0127;

  WM_UPDATEUISTATE        =$0128;

  WM_QUERYUISTATE          =$0129; 

  WM_CTLCOLORMSGBOX    =$0132;在windows绘制消息框前发送此消息给消息框的所有者窗口,通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置消息框的文本和背景颜色

  WM_CTLCOLOREDIT         =$0133;当一个编辑型控件将要被绘制时发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置编辑框的文本和背景颜色

  WM_CTLCOLORLISTBOX  = $0134;当一个列表框控件将要被绘制前发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置列表框的文本和背景颜色

WM_CTLCOLORBTN            = $0135;当一个按钮控件将要被绘制时发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置按纽的文本和背景颜色

  WM_CTLCOLORDLG        =$0136;当一个对话框控件将要被绘制前发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置对话框的文本背景颜色

  WM_CTLCOLORSCROLLBAR= $0137;当一个滚动条控件将要被绘制时发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置滚动条的背景颜色

  WM_CTLCOLORSTATIC       = $0138;当一个静态控件将要被绘制时发送此消息给它的父窗口;通过响应这条消息,所有者窗口可以通过使用给定的相关显示设备的句柄来设置静态控件的文本和背景颜色

  WM_MOUSEFIRST            =$0200;

  WM_MOUSEMOVE          =$0200; 移动鼠标

  WM_LBUTTONDOWN       =$0201; 按下鼠标左键

  WM_LBUTTONUP            =$0202;  释放鼠标左键

  WM_LBUTTONDBLCLK    = $0203;双击鼠标左键

  WM_RBUTTONDOWN       =$0204;按下鼠标右键

  WM_RBUTTONUP            =$0205;释放鼠标右键

  WM_RBUTTONDBLCLK      =$0206;双击鼠标右键

  WM_MBUTTONDOWN     =$0207;按下鼠标中键

  WM_MBUTTONUP           =$0208;释放鼠标中键

  WM_MBUTTONDBLCLK      =$0209;双击鼠标中键

  WM_MOUSEWHEEL          =$020A;当鼠标轮子转动时发送此消息个当前有焦点的控件

  WM_MOUSELAST           =$020A;

  WM_PARENTNOTIFY         =$0210;当MDI子窗口被创建或被销毁,或用户按了一下鼠标键而光标在子窗口上时发送此消息给它的父窗口

  WM_ENTERMENULOOP      =$0211;发送此消息通知应用程序的主窗口that已经进入了菜单循环模式

  WM_EXITMENULOOP        =$0212;发送此消息通知应用程序的主窗口that已退出了菜单循环模式

  WM_NEXTMENU             = $0213;

  WM_CAPTURECHANGED     =533;发送此消息 给窗口当它失去捕获的鼠标时;

  WM_MOVING                =534;当用户在移动窗口时发送此消息,通过此消息应用程序可以监视窗口大小和位置也可以修改他们;

  WM_POWERBROADCAST    = 536;此消息发送给应用程序来通知它有关电源管理事件;

  WM_DEVICECHANGE         =537;当设备的硬件配置改变时发送此消息给应用程序或设备驱动程序

  WM_IME_STARTCOMPOSITION          =$010D;

  WM_IME_ENDCOMPOSITION            =$010E;

  WM_IME_COMPOSITION                  =$010F;

  WM_IME_KEYLAST                = $010F;

  WM_IME_SETCONTEXT                  =$0281;

  WM_IME_NOTIFY                         = $0282;

  WM_IME_CONTROL                       = $0283;

  WM_IME_COMPOSITIONFULL             =$0284;

  WM_IME_SELECT                         = $0285;

  WM_IME_CHAR                           = $0286;

  WM_IME_REQUEST                       = $0288;

  WM_IME_KEYDOWN                     = $0290;

  WM_IME_KEYUP                           =$0291;

  WM_MDICREATE                  =$0220;应用程序发送此消息给多文档的客户窗口来创建一个MDI 子窗口

  WM_MDIDESTROY            =$0221;应用程序发送此消息给多文档的客户窗口来关闭一个MDI 子窗口

  WM_MDIACTIVATE             = $0222;应用程序发送此消息给多文档的客户窗口通知客户窗口激活另一个MDI子窗口,当客户窗口收到此消息后,它发出WM_MDIACTIVE消息给MDI子窗口(未激活)激活它;

  WM_MDIRESTORE             = $0223;程序发送此消息给MDI客户窗口让子窗口从最大最小化恢复到原来大小

  WM_MDINEXT                   = $0224;程序发送此消息给MDI客户窗口激活下一个或前一个窗口

  WM_MDIMAXIMIZE             =$0225;程序发送此消息给MDI客户窗口来最大化一个MDI子窗口;

  WM_MDITILE                    = $0226;程序发送此消息给MDI客户窗口以平铺方式重新排列所有MDI子窗口

  WM_MDICASCADE              = $0227;程序发送此消息给MDI客户窗口以层叠方式重新排列所有MDI子窗口

  WM_MDIICONARRANGE     =$0228;程序 发送此消息给MDI客户窗口重新排列所有最小化的MDI子窗口

  WM_MDIGETACTIVE         =$0229;程序 发送此消息给MDI客户窗口来找到激活的子窗口的句柄

  WM_MDISETMENU          =$0230;程序 发送此消息给MDI客户窗口用MDI菜单代替子窗口的菜单

  WM_ENTERSIZEMOVE       =$0231;

  WM_EXITSIZEMOVE          =$0232;

  WM_DROPFILES             =$0233;

  WM_MDIREFRESHMENU     =$0234;

  WM_MOUSEHOVER          =$02A1;

  WM_MOUSELEAVE           =$02A3;

  WM_CUT                            =$0300;程序发送此消息给一个编辑框或combobox来删除当前选择的文本

  WM_COPY                    =$0301;程序发送此消息给一个编辑框或combobox来复制当前选择的文本到剪贴板

  WM_PASTE                        =$0302;程序发送此消息给editcontrol或combobox从剪贴板中得到数据

  WM_CLEAR                  =$0303;程序发送此消息给editcontrol或combobox清除当前选择的内容;

  WM_UNDO                       =$0304;程序发送此消息给editcontrol或combobox撤消最后一次操作

  WM_RENDERFORMAT       =$0305;

  WM_RENDERALLFORMATS  = $0306;

  WM_DESTROYCLIPBOARD   = $0307;当调用ENPTYCLIPBOARD函数时 发送此消息给剪贴板的所有者

  WM_DRAWCLIPBOARD       =$0308;当剪贴板的内容变化时发送此消息给剪贴板观察链的第一个窗口;它允许用剪贴板观察窗口来显示剪贴板的新内容;

  WM_PAINTCLIPBOARD       =$0309;当剪贴板包含CF_OWNERDIPLAY格式的数据并且剪贴板观察窗口的客户区需要重画;

  WM_VSCROLLCLIPBOARD   = $030A; 

WM_SIZECLIPBOARD        =$030B;当剪贴板包含CF_OWNERDIPLAY格式的数据并且剪贴板观察窗口的客户区域的大小已经改变是此消息通过剪贴板观察窗口发送给剪贴板的所有者;

  WM_ASKCBFORMATNAME   = $030C;通过剪贴板观察窗口发送此消息给剪贴板的所有者来请求一个CF_OWNERDISPLAY格式的剪贴板的名字

  WM_CHANGECBCHAIN       =$030D;当一个窗口从剪贴板观察链中移去时发送此消息给剪贴板观察链的第一个窗口;

  WM_HSCROLLCLIPBOARD   = $030E; 此消息通过一个剪贴

 

 

  WM_PRINTCLIENT           =792;

  WM_HANDHELDFIRST       =856;

  WM_HANDHELDLAST        =863;

  WM_PENWINFIRST          =$0380;

  WM_PENWINLAST           =$038F;

  WM_COALESCE_FIRST       =$0390;

  WM_COALESCE_LAST       = $039F;

  WM_DDE_FIRST             =$03E0;

  WM_DDE_INITIATE           =WM_DDE_FIRST + 0;一个DDE客户程序提交此消息开始一个与服务器程序的会话来响应那个指定的程序和主题名;

  WM_DDE_TERMINATE       =WM_DDE_FIRST + 1;一个DDE应用程序(无论是客户还是服务器)提交此消息来终止一个会话;

  WM_DDE_ADVISE            =WM_DDE_FIRST + 2;一个DDE客户程序提交此消息给一个DDE服务程序来请求服务器每当数据项改变时更新它

  WM_DDE_UNADVISE         =WM_DDE_FIRST + 3;一个DDE客户程序通过此消息通知一个DDE服务程序不更新指定的项或一个特殊的剪贴板格式的项

  WM_DDE_ACK               =WM_DDE_FIRST + 4;此消息通知一个DDE(动态数据交换)程序已收到并正在处理

WM_DDE_POKE,

WM_DDE_EXECUTE, WM_DDE_DATA, WM_DDE_ADVISE, WM_DDE_UNADVISE, orWM_DDE_INITIAT消息

  WM_DDE_DATA               =WM_DDE_FIRST + 5;一个DDE服务程序提交此消息给DDE客户程序来传递个一数据项给客户或通知客户的一条可用数据项

  WM_DDE_REQUEST         =WM_DDE_FIRST + 6;一个DDE客户程序提交此消息给一个DDE服务程序来请求一个数据项的值;

  WM_DDE_POKE              =WM_DDE_FIRST + 7;一个DDE客户程序提交此消息给一个DDE服务程序,客户使用此消息来请求服务器接收一个未经同意的数据项;服务器通过答复WM_DDE_ACK消息提示是否它接收这个数据项;

  WM_DDE_EXECUTE         =WM_DDE_FIRST + 8;一个DDE客户程序提交此消息给一个DDE服务程序来发送一个字符串给服务器让它象串行命令一样被处理,服务器通过提交WM_DDE_ACK消息来作回应;

  WM_DDE_LAST              =WM_DDE_FIRST + 8;

  WM_APP                               = $8000;

  WM_USER                    =$0400;此消息能帮助应用程序自定义私有消息;

 

通知消息

通知消息(Notification message)是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows 95公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通知消息。

 

按扭

BN_CLICKED              用户单击了按钮

BN_DISABLE              按钮被禁止

BN_DOUBLECLICKED      用户双击了按钮

BN_HILITE                用户加亮了按钮

BN_PAINT                 按钮应当重画

BN_UNHILITE             加亮应当去掉

组合框

CBN_CLOSEUP             组合框的列表框被关闭

CBN_DBLCLK              用户双击了一个字符串

CBN_DROPDOWN           组合框的列表框被拉出

CBN_EDITCHANGE         用户修改了编辑框中的文本

CBN_EDITUPDATE          编辑框内的文本即将更新

CBN_ERRSPACE            组合框内存不足

CBN_KILLFOCUS           组合框失去输入焦点

CBN_SELCHANGE          在组合框中选择了一项

CBN_SELENDCANCEL       用户的选择应当被取消

CBN_SELENDOK            用户的选择是合法的

CBN_SETFOCUS            组合框获得输入焦点

编辑框

EN_CHANGE               编辑框中的文本己更新

EN_ERRSPACE              编辑框内存不足

EN_HSCROLL              用户点击了水平滚动条

EN_KILLFOCUS            编辑框正在失去输入焦点

EN_MAXTEXT             插入的内容被截断

EN_SETFOCUS             编辑框获得输入焦点

EN_UPDATE                编辑框中的文本将要更新

EN_VSCROLL               用户点击了垂直滚动条消息含义

列表框

LBN_DBLCLK               用户双击了一项

LBN_ERRSPACE            列表框内存不够

LBN_KILLFOCUS            列表框正在失去输入焦点

LBN_SELCANCEL           选择被取消

LBN_SELCHANGE           选择了另一项

LBN_SETFOCUS             列表框获得输入焦点

 

消息映射宏

//Message Map Functions in the Microsoft Foundation Class Library

Handlers For WM_COMMAND Messages

Map Entry                                                                                        FunctionPrototype

ON_COMMAND(<id>,<memberFxn>)                                                    afx_msg void memberFxn();

ON_COMMAND_EX(<id>, <memberFxn>)                                             afx_msg BOOL memberFxn(UINT);

ON_COMMAND_EX_RANGE(<id>, <idLast>, <memberFxn>)                 afx_msg BOOL memberFxn(UINT);

ON_COMMAND_RANGE(<id>, <idLast>, <memberFxn>)                         afx_msg void memberFxn(UINT);

ON_UPDATE_COMMAND_UI(<id>, <memberFxn>)                                 afx_msg void memberFxn(CCmdUI*);

ON_UPDATE_COMMAND_UI_RANGE (<id>, <idLast>,<memberFxn>)     afx_msg voidmemberFxn(CCmdUI*);

ON_UPDATE_COMMAND_UI_REFLECT (<memberFxn>)                       afx_msg void memberFxn(CCmdUI*);

Handlers For Child Window NotificationMessages

Generic Control Notification Codes

ON_CONTROL(<wNotifyCode>,<id>, <memberFxn>)                            afx_msgvoid memberFxn();

 

ON_CONTROL_RANGE(<wNotifyCode>, <id> <idLast>,<memberFxn>) afx_msg void memberFxn(UINT);

 

ON_CONTROL_REFLECT(<wNotifyCode>, <memberFxn>)                       afx_msgvoid memberFxn();

 

ON_CONTROL_REFLECT_EX(<wNotifyCode>, <memberFxn>)              afx_msgBOOL memberFxn();

 

ON_NOTIFY(<wNotifyCode>,<id>, <memberFxn>)                               afx_msgvoid memberFxn(NMHDR*, LRESULT*);  (#add ON_NOTIFY: 在MFC应用程序里处理 WM_NOTIFY 消息函数CWnd::OnNotify处理通告消息。其默认实现是检查通告消息处理函数的消息映射,然后调用(checks the messagemap for notification handlers to call)。一般说来,你不用重载OnNotify。你可以写一个处理函数,然后在你自己的窗口类的消息映射表里添加一个该函数的消息映射入口。)

 

ON_NOTIFY_EX(<wNotifyCode>, <id>, <memberFxn>)                          afx_msgBOOL memberFxn(UINT, NMHDR*, LRESULT*);

 

ON_NOTIFY_EX_RANGE(<wNotifyCode>, <id>, <idLast>,<memberFxn>)   afx_msg BOOLmemberFxn(UINT, NMHDR*, LRESULT*);

 

ON_NOTIFY_RANGE(<wNotifyCode>, <id>, <idLast>,<memberFxn>)    afx_msg void memberFxn(UINT, NMHDR*,LRESULT*);

ON_NOTIFY_REFLECT(<wNotifyCode>,<memberFxn>)                          afx_msg voidmemberFxn(NMHDR*, LRESULT*);

 

ON_NOTIFY_REFLECT_EX(<wNotifyCode>, <memberFxn>)                  afx_msgBOOL memberFxn(NMHDR*, LRESULT*);

Static Control Notification Codes

ON_STN_CLICKED(<id>,<memberFxn>)                     afx_msgvoid FUN();

ON_STN_DBLCLK(<id>, <memberFxn>)                      afx_msg void FUN();

ON_STN_DISABLE(<id>, <memberFxn>)                     afx_msg void FUN();

ON_STN_ENABLE(<id>, <memberFxn>)                afx_msg void FUN();

Button Notification Codes

这些特定控件通知消息都无参数,即形式为void  FUN()

ON_BN_CLICKED(<ID>,<FUN>)                                 afx_msg void FUN();

ON_BN_DOUBLECLICKED(<ID>,<FUN>)                     afx_msg voidFUN();

ON_BN_KILLFOCUS(<ID>,<FUN>)                       afx_msgvoid FUN();

ON_BN_SETFOCUS(<ID>,<FUN>)                               afx_msgvoid FUN();

Edit Control Notification Codes

ON_EN_CHANGE(<ID>,<FUN>)                                  afx_msgvoid FUN();

ON_EN_ERRSPACE(<ID>,<FUN>)                                afx_msg void FUN();

ON_EN_HSCROLL(<ID>,<FUN>)                                 afx_msg void FUN();

ON_EN_KILLFOCUS(<ID>,<FUN>)                       afx_msg void FUN();

ON_EN_MAXTEXT(<ID>,<FUN>)                                afx_msg void FUN();

ON_EN_SETFOCUS(<ID>,<FUN>)                               afx_msg void FUN();

ON_EN_UPDATE(<ID>,<FUN>)                                    afx_msg void FUN();

ON_EN_VSCROLL(<ID>,<FUN>)                                 afx_msg void FUN();

ComboBox Notification Codes

ON_CBN_CLOSEUP(<ID>,<FUN>)                              afx_msg void FUN();

ON_CBN_DBLCLK(<ID>,<FUN>)                                 afx_msgvoid FUN();

ON_CBN_DROPDOWN(<ID>,<FUN>)                          afx_msgvoid FUN();

ON_CBN_EDITCHANGE(<ID>,<FUN>)                        afx_msgvoid FUN();

ON_CBN_EDITUPDATE(<ID>,<FUN>)                         afx_msgvoid FUN();

ON_CBN_ERRSPACE(<ID>,<FUN>)                             afx_msgvoid FUN();

ON_CBN_KILLFOCUS(<ID>,<FUN>)                            afx_msgvoid FUN();

ON_CBN_SELCHANGE(<ID>,<FUN>)                          afx_msgvoid FUN();

ON_CBN_SELENDCANCEL(<ID>,<FUN>)                    afx_msg void FUN();

ON_CBN_SELENDOK(<ID>,<FUN>)                            afx_msgvoid FUN();

ON_CBN_SETFOCUS(<ID>,<FUN>)                             afx_msgvoid FUN();

CheckListBox Notification Codes

ON_CLBN_CHKCHANGE(<ID>,<FUN>)                 afx_msg void FUN();

ListBox Notification Codes

ON_LBN_DBLCLK(<ID>,<FUN>)                                afx_msg void FUN();

ON_LBN_ERRSPACE(<ID>,<FUN>)                       afx_msgvoid FUN();

ON_LBN_KILLFOCUS(<ID>,<FUN>)                            afx_msgvoid FUN();

ON_LBN_SELCANCEL(<ID>,<FUN>)                           afx_msgvoid FUN();

ON_LBN_SELCHANGE(<ID>,<FUN>)                           afx_msgvoid FUN();

ON_LBN_SETFOCUS(<ID>,<FUN>)                             afx_msgvoid FUN();

列表视图通知代码

ON_LVN_BEGINDRAG(<ID>,<FUN>)                          afx_msg voidFUN();

ON_LVN_BEGINLABLEEDIT(<ID>,<FUN>)                  afx_msg void FUN();

ON_LVN_BEGINRDRAG(<ID>,<FUN>)                        afx_msg void FUN();

ON_LVN_COLUMNCLICK(<ID>,<FUN>)                      afx_msg void FUN();

ON_LVN_DELETEALLITEMS(<ID>,<FUN>)                 afx_msg void FUN();

ON_LVN_DELETEITEM(<ID>,<FUN>)                         afx_msg void FUN();

ON_LVN_ENDLABLEEDIT(<ID>,<FUN>)                     afx_msg void FUN();

ON_LVN_GETDISPINFOR(<ID>,<FUN>)                     afx_msg void FUN();

ON_LVN_INSERTITEM(<ID>,<FUN>)                          afx_msg void FUN();

ON_LVN_ITEMCHANGED(<ID>,<FUN>)                      afx_msg void FUN();

ON_LVN_KEYDOWN(<ID>,<FUN>)                             afx_msg void FUN();

ON_LVN_PEN(<ID>,<FUN>)                                        afx_msgvoid FUN();

ON_LVN_SETDISPINFO(<ID>,<FUN>)                        afx_msg void FUN();

树视图通知代码

ON_TVN_BEGINDRAG(<ID>,<FUN>)                         afx_msg voidFUN();

ON_TVN_BEGINLABLEEDIT(<ID>,<FUN>)                 afx_msg void FUN();

ON_TVN_BEGINRDRAG(<ID>,<FUN>)                        afx_msg void FUN();

ON_TVN_DELETEITEM(<ID>,<FUN>)                         afx_msg void FUN();

ON_TVN_ENDLABLEEDIT(<ID>,<FUN>)                     afx_msg void FUN();

ON_TVN_GETDISPINFOR(<ID>,<FUN>)                     afx_msg void FUN();

ON_TVN_ITEMEXPENDED(<ID>,<FUN>)                   afx_msg void FUN();

ON_TVN_KEYDOWN(<ID>,<FUN>)                             afx_msg void FUN();

ON_TVN_SELCHANGED(<ID>,<FUN>)                        afx_msg void FUN();

ON_TVN_SELCHANGING(<ID>,<FUN>)                      afx_msg void FUN();

列表控件通知代码

ON_TCN_KEYDOWN(<ID>,<FUN>)                            afx_msg voidFUN();

ON_TCN_SELCHANGED(<ID>,<FUN>)                        afx_msg void FUN();

ON_TCN_SELCHANGING(<ID>,<FUN>)                      afx_msg void FUN();

Handlers For Windows Messages

ON_WM_ACTIVATE()                     afx_msg void OnActivate(UINT,CWnd*, BOOL);

ON_WM_ACTIVATEAPP()               afx_msg void OnActivateApp(BOOL,HTASK);

ON_WM_ASKCBFORMATNAME()    afx_msgvoid OnAskCbFormatName(UINT, LPTSTR);

ON_WM_CANCELMODE()             afx_msg void OnCancelMode();

ON_WM_CAPTURECHANGED()   afx_msgvoid OnCaptureChanged(CWnd*);

ON_WM_CHANGECBCHAIN()        afx_msg void OnChangeCbChain(HWND, HWND);

ON_WM_CHAR()                            afx_msg voidOnChar(UINT, UINT, UINT);

ON_WM_CHARTOITEM()               afx_msg int OnCharToItem(UINT,CListBox*, UINT);

ON_WM_CHARTOITEM_REFLECT()   afx_msgint CharToItem(UINT, UINT);

ON_WM_CHILDACTIVATE()    afx_msg void OnChildActivate();

ON_WM_CLOSE()                          afx_msg void OnClose();

ON_WM_COMPACTING()              afx_msg void OnCompacting(UINT);

ON_WM_COMPAREITEM()            afx_msg int OnCompareItem(int,LPCOMPAREITEMSTRUCT);

ON_WM_COMPAREITEM_REFLECT()   afx_msgint CompareItem (LPCOMPAREITEMSTRUCT);

ON_WM_CONTEXTMENU()    afx_msg void OnContextMenu(CWnd*, CPoint);

ON_WM_COPYDATA()                   afx_msg BOOL OnCopyData(CWnd*,COPYDATASTRUCT*);

ON_WM_CREATE()                        afx_msgint OnCreate(LPCREATESTRUCT);

ON_WM_CTLCOLOR()                  afx_msgHBRUSH OnCtlColor(CDC*, CWnd*, UINT);

ON_WM_CTLCOLOR_REFLECT()    afx_msg HBRUSH CtlColor(CDC*, UINT);

ON_WM_DEADCHAR()                  afx_msg void OnDeadChar(UINT,UINT, UINT);

ON_WM_DELETEITEM()               afx_msg void OnDeleteItem(int,LPDELETEITEMSTRUCT);

ON_WM_DELETEITEM_REFLECT()afx_msg void DeleteItem(LPDELETEITEMSTRUCT)

ON_WM_DESTROY()                     afx_msgvoid OnDestroy();

ON_WM_DESTROYCLIPBOARD()   afx_msgvoid OnDestroyClipboard();

ON_WM_DEVICECHANGE()    afx_msg BOOL OnDeviceChange(UINT, DWORD);

ON_WM_DEVMODECHANGE()      afx_msg void OnDevModeChange(LPTSTR);

ON_WM_DRAWCLIPBOARD()        afx_msg void OnDrawClipboard();

ON_WM_DRAWITEM()                  afx_msg void OnDrawItem(int,LPDRAWITEMSTRUCT);

ON_WM_DRAWITEM_REFLECT()   afx_msgvoid DrawItem (LPDRAWITEMSTRUCT);

ON_WM_DROPFILES()                  afx_msg void OnDropFiles(HDROP);

ON_WM_ENABLE()                        afx_msg voidOnEnable(BOOL);

ON_WM_ENDSESSION()               afx_msg void OnEndSession(BOOL);

ON_WM_ENTERIDLE()                  afx_msg void OnEnterIdle(UINT,CWnd*);

ON_WM_ENTERMENULOOP()       afx_msg void OnEnterMenuLoop(BOOL);

ON_WM_ERASEBKGND()              afx_msg BOOL OnEraseBkgnd(CDC*);

ON_WM_EXITMENULOOP()          afx_msg void OnExitMenuLoop(BOOL);

ON_WM_FONTCHANGE()              afx_msg void OnFontChange();

ON_WM_GETDLGCODE()              afx_msg UINT OnGetDlgCode();

ON_WM_GETMINMAXINFO()       afx_msg void OnGetMinMaxInfo (MINMAXINFO*);

ON_WM_HELPINFO()                    afx_msg BOOLOnHelpInfo(HELPINFO*);

ON_WM_HSCROLL()                     afx_msgvoid OnHScroll(UINT, UINT, CScrollBar*);

ON_WM_HSCROLL_REFLECT()   afx_msg  void HScroll(UINT, UINT);

ON_WM_HSCROLLCLIPBOARD()    afx_msgvoid OnHScrollClipboard(CWnd*,UINT,UINT);

ON_WM_ICONERASEBKGND()      afx_msg void OnIconEraseBkgnd(CDC*);

ON_WM_INITMENU()                    afx_msg voidOnInitMenu(CMenu*);

ON_WM_INITMENUPOPUP()         afx_msg void OnInitMenuPopup(CMenu*,UINT,BOOL);

ON_WM_KEYDOWN()                   afx_msg void OnKeyDown(UINT,UINT, UINT);

ON_WM_KEYUP()                          afx_msg voidOnKeyUp(UINT, UINT, UINT);

ON_WM_KILLFOCUS()                  afx_msg void OnKillFocus(CWnd*);

ON_WM_LBUTTONDBLCLK()        afx_msg void OnLButtonDblClk(UINT, CPoint);

ON_WM_LBUTTONDOWN()          afx_msg void OnLButtonDown(UINT, CPoint);

ON_WM_LBUTTONUP()                 afx_msg void OnLButtonUp(UINT,CPoint);

ON_WM_MBUTTONDBLCLK()       afx_msg void OnMButtonDblClk(UINT, CPoint);

ON_WM_MBUTTONDOWN()         afx_msg void OnMButtonDown(UINT, CPoint);

ON_WM_MBUTTONUP()                afx_msg void OnMButtonUp(UINT,CPoint);

ON_WM_MDIACTIVATE()              afx_msg void OnMDIActivate(BOOL,CWnd*,CWnd*);

ON_WM_MEASUREITEM()            afx_msg void OnMeasureItem(int,LPMEASUREITEMSTRUCT);

ON_WM_MEASUREITEM_REFLECT()   afx_msg void MeasureItem(LPMEASUREITEMSTRUCT);

ON_WM_MENUCHAR()           afx_msg LRESULTOnMenuChar(UINT,UINT,CMenu*);

ON_WM_MENUSELECT()              afx_msgvoid OnMenuSelect(UINT, UINT, HMENU);

ON_WM_MOUSEACTIVATE()         afx_msg int OnMouseActivate(CWnd*, UINT,UINT);

ON_WM_MOUSEMOVE()               afx_msg void OnMouseMove(UINT,CPoint);

ON_WM_MOUSEWHEEL()             afx_msg BOOL OnMouseWheel(UINT, short,CPoint);

ON_WM_MOVE()                           afx_msg void OnMove(int,int);

ON_WM_MOVING()                       afx_msg void OnMoving(UINT,LPRECT);

ON_WM_NCACTIVATE()                afx_msg BOOL OnNcActivate(BOOL);

ON_WM_NCCALCSIZE()                afx_msg void OnNcCalcSize(BOOL,NCCALCSIZE_PARAMS*);

ON_WM_NCCREATE()                   afx_msg BOOL OnNcCreate(LPCREATESTRUCT);

ON_WM_NCDESTROY()                afx_msg void OnNcDestroy();

ON_WM_NCHITTEST()                  afx_msg UINT OnNcHitTest(CPoint);

ON_WM_NCLBUTTONDBLCLK()     afx_msgvoid OnNcLButtonDblClk(UINT, CPoint);

ON_WM_NCLBUTTONDOWN()     afx_msg void OnNcLButtonDown(UINT, CPoint);

ON_WM_NCLBUTTONUP()            afx_msg void OnNcLButtonUp(UINT,CPoint);

ON_WM_NCMBUTTONDBLCLK()    afx_msgvoid OnNcMButtonDblClk(UINT, CPoint);

ON_WM_NCMBUTTONDOWN()   afx_msgvoid OnNcMButtonDown(UINT, CPoint);

ON_WM_NCMBUTTONUP()    afx_msg void OnNcMButtonUp(UINT, CPoint);

ON_WM_NCMOUSEMOVE()          afx_msg void OnNcMouseMove(UINT, CPoint);

ON_WM_NCPAINT()                      afx_msg void OnNcPaint();

ON_WM_NCRBUTTONDBLCLK()    afx_msgvoid OnNcRButtonDblClk(UINT, CPoint);

ON_WM_NCRBUTTONDOWN()     afx_msg void OnNcRButtonDown(UINT, CPoint);

ON_WM_NCRBUTTONUP()            afx_msg void OnNcRButtonUp(UINT,CPoint);

ON_WM_PAINT()                           afx_msg void OnPaint();

ON_WM_PAINTCLIPBOARD()        afx_msg void OnPaintClipboard(CWnd*,HGLOBAL);

ON_WM_PALETTECHANGED()      afx_msg void OnPaletteChanged(CWnd*);

ON_WM_PALETTEISCHANGING() afx_msgvoid OnPaletteIsChanging(CWnd*);

ON_WM_PARENTNOTIFY()           afx_msg void OnParentNotify(UINT,LPARAM);

ON_WM_PARENTNOTIFY_REFLECT()   afx_msg void ParentNotify(UINT, LPARAM);

ON_WM_QUERYDRAGICON()        afx_msg HCURSOR OnQueryDragIcon();

ON_WM_QUERYENDSESSION()   afx_msgBOOL OnQueryEndSession();

ON_WM_QUERYNEWPALETTE()  afx_msgBOOL OnQueryNewPalette();

ON_WM_QUERYOPEN()                 afx_msg BOOL OnQueryOpen();

ON_WM_RBUTTONDBLCLK()        afx_msg void OnRButtonDblClk(UINT, CPoint);

ON_WM_RBUTTONDOWN()          afx_msg void OnRButtonDown(UINT, CPoint);

ON_WM_RBUTTONUP()                afx_msg void OnRButtonUp(UINT,CPoint);

ON_WM_RENDERALLFORMATS()   afx_msgvoid OnRenderAllFormats();

ON_WM_RENDERFORMAT()         afx_msg void OnRenderFormat(UINT);

ON_WM_SETCURSOR()                 afx_msg BOOL OnSetCursor(CWnd*,UINT, UINT);

ON_WM_SETFOCUS()                   afx_msg void OnSetFocus(CWnd*);

ON_WM_SETTINGCHANGE()        afx_msg void OnSettingChange(UINT,LPCTSTR);

ON_WM_SHOWWINDOW()           afx_msg void OnShowWindow(BOOL, UINT);

ON_WM_SIZE()                             afx_msg void OnSize(UINT, int, int);

ON_WM_SIZECLIPBOARD()          afx_msg void OnSizeClipboard(CWnd*,HGLOBAL);

ON_WM_SIZING()                         afx_msgvoid OnSizing(UINT, LPRECT);

ON_WM_SPOOLERSTATUS()         afx_msg void OnSpoolerStatus(UINT, UINT);

ON_WM_STYLECHANGED()          afx_msg void OnStyleChanged(int,LPSTYLESTRUCT);

ON_WM_STYLECHANGING()        afx_msg voidOnStyleChanging(int,LPSTYLESTRUCT);

ON_WM_SYSCHAR()                     afx_msg void OnSysChar(UINT,UINT, UINT);

ON_WM_SYSCOLORCHANGE()   afx_msgvoid OnSysColorChange();

ON_WM_SYSCOMMAND()            afx_msg void OnSysCommand(UINT,LPARAM);

ON_WM_SYSDEADCHAR()            afx_msg void OnSysDeadChar(UINT, UINT,UINT);

ON_WM_SYSKEYDOWN()             afx_msg void OnSysKeyDown(UINT, UINT,UINT);

ON_WM_SYSKEYUP()                    afx_msg void OnSysKeyUp(UINT,UINT, UINT);

ON_WM_TCARD()                         afx_msg void OnTCard(UINT,DWORD);

ON_WM_TIMECHANGE()              afx_msg void OnTimeChange();

ON_WM_TIMER()                          afx_msg voidOnTimer(UINT);

ON_WM_VKEYTOITEM()               afx_msg int OnVKeyToItem(UINT,CListBox*, UINT);

ON_WM_VKEYTOITEM_REFLECT()   afx_msgint VKeyToItem(UINT, UINT);

ON_WM_VSCROLL()                            afx_msg void OnVScroll(UINT, UINT, CScrollBar*);

ON_WM_VSCROLL_REFLECT()            afx_msg void VScroll(UINT, UINT);

ON_WM_VSCROLLCLIPBOARD()           afx_msg voidOnVScrollClipboard(CWnd*,UINT,UINT);

ON_WM_WINDOWPOSCHANGED()      afx_msg void OnWindowPosChanged(WINDOWPOS*);

ON_WM_WINDOWPOSCHANGING()   afx_msgvoid OnWindowPosChanging(WINDOWPOS*);

ON_WM_WININICHANGE()                  afx_msg voidOnWinIniChange(LPCTSTR);

User-Defined Message Codes

注意消息带WPARAM, LPARAM两个参数,可在发送的时候传递

ON_MESSAGE(<message>,<memberFxn>)  afx_msg LRESULT memberFxn(WPARAM,LPARAM);

 

ON_REGISTERED_MESSAGE(<nMessageVariable>,<memberFxn>)                  afx_msgLRESULT memberFxn(WPARAM, LPARAM);

 

ON_REGISTERED_THREADMESSAGE(<nMessageVariable>,<memberFxn>)          afx_msg void memberFxn(WPARAM, LPARAM);

 

ON_THREAD_MESSAGE(<message>, <memberFxn>)                                            afx_msgvoid memberFxn(WPARAM, LPARAM);

原创粉丝点击