C# 中的消息处理

[以下内容复制于网络]

在前面:要自定义WinForm界面控件,WndProc方法的重写恐怕是必不可少了,它是对系统消息的捕获和处理方法,自定义控件时,可以捕获重画,鼠标移动等消息,然后重画控件,从而改变控件的外观,这样就可以达到自定义的功能,特别是美化控件,就一定要捕获系统消息,下面介绍一些重要的系统消息,这些消息基本上是继承.Net基础控件(如TextBox,Button之类)之后必不可少的需要捕获的消息。如WM_PAINT,WM_NCPAINT等,你可以不知道吗?如果你真的不知道,你可以说,你是个入门的GUI编程者吗?下面,只简单地列举消息和说明意思,但并不举例子说明。

WM_PAINT = 0x000F
其中0x000F是C#中表示int的一种写法,可以定义为const,要求一个窗口重画自己

WM_NCPAINT = 0x0085
当某个窗口的框架必须被绘制时,程序发送此消息给窗口

WM_ACTIVATE = 0x0006
一个窗口被激活或失去激活状态

WM_KILLFOCUS = 0x0008
失去焦点

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

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

WM_SETTEXT = 0x000C
应用程序发送此消息来设置一个窗口的文本

WM_LBUTTONDOWN = 0x0201
按下鼠标左键

WM_LBUTTONUP = 0x0202
释放鼠标左键

WM_LBUTTONDBLCLK = 0x0203
双击鼠标左键

WM_MOUSEMOVE = 0x0200
移动鼠标

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

WM_SIZE = 5
改变一个窗口的大小

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

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

WM_SHOWWINDOW = 0x18
当隐藏或显示窗口是发送此消息给这个窗口

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

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

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

 

不要以下面的西只有C++中才会用到哦!

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

type
TMsg = packed record
hwnd: HWND; //窗口句柄
message: UINT;//消息常量
标识
wParam: WPARAM ;// 32位消息的特定附加信息
lParam: LPARAM ;// 32位消息的特定附加信息
time: DWORD;//消息
时间
pt: TPoint; //消息
的鼠位置
end ;

消息中有什
是否
得一个消息记录中的信息像希腊?如果是这样,那看一看下面的解:hwnd 32位的窗口句柄。窗口可以是任何型的屏幕象,因Win32能够维护大多数可
视对象的句柄(窗口、对话框、按编辑框等)。message 用于区其他消息的常量些常量可以是Windows元中的常量,也
可以是自定
的常量。
wParam 通常是一个与消息有
的常量,也可能是窗口或控件的句柄。
lParam 通常是一个指向内存中数据的指
。由于WParam、lParam和Pointer都是32位的,因此,它可以相互转换

WM_NULL =$0000 //
WM_CREATE =$0001 //
用程序建一个窗口
WM_DESTROY = $0002 //一个窗口被
销毁
WM_MOVE = $0003 //移
一个窗口
WM_SIZE= $0005 //改
一个窗口的大小
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_RESETCONTENT, 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_NCLBUTTONDOWN= $00A1 //
当光
在一个窗口的非客区同按下鼠键时提交此消息
WM_NCLBUTTONUP= $00A2 //当用
户释放鼠某个窗口在非客区十送此消息;
WM_NCLBUTTONDBLCLK= $00A3 //当用
某个窗口在非客区十送此消息
WM_NCRBUTTONDOWN= $00A4 //当用
按下鼠又在窗口的非客时发送此消息
WM_NCRBUTTONUP= $00A5 //当用
户释放鼠又在窗口的非客时发送此消息
WM_NCRBUTTONDBLCLK= $00A6 //当用
某个窗口在非客区十送此消息
WM_NCMBUTTONDOWN= $00A7 //当用
按下鼠又在窗口的非客时发送此消息
WM_NCMBUTTONUP= $00A8 //当用
户释放鼠又在窗口的非客时发送此消息
WM_NCMBUTTONDBLCLK= $00A9 //当用
又在窗口的非客时发送此消息
WM_KEYFIRST = $0100 //
WM_KEYDOWN= $0100 //按下一个

WM_KEYUP= $0101 //
放一个
WM_CHAR = $0102 //按下某
,并已出WM_KEYDOWN,WM_KEYUP消息
WM_DEADCHAR = $0103 //当用translatemessage函数翻
WM_KEYUP消息时发送此消息给拥有焦点的窗口
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_SIZING = 532 //当用
正在整窗口大小时发送此消息窗口;通此消息用程序可以监视窗口大小和位置
也可以修改他

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 //
此消息通
一个剪察窗口板的所有者;它生在当剪板包含CFOWNERDISPALY格式的数据并且有个事件在剪察窗的水平滚动条上;所有者应滚动象并更新滚动条的
WM_QUERYNEWPALETTE= $030F //此消息
将要收到焦点的窗口,此消息能使窗口在收到焦点有机会实现他的逻辑调色板
WM_PALETTEISCHANGING= $0310 //当一个
用程序正要实现它的逻辑调色板时发此消息通知所有的用程序
WM_PALETTECHANGED = $0311 //此消息在一个
有焦点的窗口实现它的逻辑调色板后送此消息所有顶级并重叠的窗口,以此
来改
统调色板
WM_HOTKEY = $0312 //当用
按下由REGISTERHOTKEY函数注册的热键时提交此消息
WM_PRINT= 791 //
用程序送此消息当WINDOWS或其它用程序出一个求要求制一个用程序的一部分;
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, or WM_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 //列表框
入焦点