Windows消息分类

合集下载

Windows常用消息大全

Windows常用消息大全
windows常用消息大全消息范围0x7fffwmapp0xbfff0xc000a2windows消息分布系统消息自定义窗口类整数消息应用程序自定义消息应用程序字符串消息为以后系统应用保留常用windows消息消息名称wmnullwmcreatewmdestroywmmovewmsizewmactivatewmsetfocuswmkillfocuswmenablewmsetredrawwmsettextwmgettextwmgettextlengthwmpaintwmclosewmqueryendsessionwmquitwmqueryopenwmerasebkgndwmsyscolorchangewmendsessionwmshowwindowwmactivateappwmfontchangewmtimechangewmcancelmodewmsetcursorwmmouseactivatewmchildactivatewmqueuesync0x00000x00010x00020x00030x00050x00060x00070x00080x000a0x000b0x000c0x000d0x000e0x000f0x00100x00110x00120x00130x00140x00150x00160x00180x001c0x001d0x001e0x001f0x00200x00210x00220x0023空消息此消息将被接收窗口忽略应用程序创建一个窗口一个窗口被销毁移动一个窗口改变一个窗口的大小一个窗口被激活或失去激活状态获得焦点后失去焦点应用程序enable状态改变时产生设置窗口是否能重画应用程序发送此消息来设置一个窗口的文本应用程序发送此消息来复制对应窗口的文本到缓冲区得到与一个窗口有关的文本的长度不包含空字符要求一个窗口重绘自己当一个窗口或应用程序要关闭时发送一个信号用户选择结束对话框或应用程序自己调用exitwindows函数用来结束程序运行或应用程序调用postquitmessage函数来产生此消息当用户窗口恢复以前的大小位置时把此消息发送给某个图标当窗口背景必须被擦除时例如在窗口改变大小时当系统颜色改变时发送此消息给所有顶级窗口当系统进程发出wmqueryendsession消息后此消息发送给应用程序当隐藏或显示窗口是发送此消息给这个窗口当某个窗口将被激活时将被激活窗口和当前活动即将失去激活窗口会收到此消息发

Windows消息大全(最新整理版)

Windows消息大全(最新整理版)
WM_VKEYTOITEM = 46
此消息有一个LBS_WANTKEYBOARDINPUT风格的发出给它的所有者来响应WM_KEYDOWN消息
WM_CHARTOITEM = 47
此消息由一个LBS_WANTKEYBOARDINPUT风格的列表框发送给他的所有者来响应WM_CHAR消息
WM_SETFONT = 48
WM_PAINT = 15
要求一个窗口重画自己
WM_CLOSE = 16
当一个窗口或应用程序要关闭时发送一个信号
WM_QUERYENDSESSION = 17
当用户选择结束对话框或程序自己18
用来结束程序运行或当程序调用postquitmessage函数
WM_QUERYOPEN = 19
当用户窗口恢复以前的大小位置时,把此消息发送给某个图标
WM_ERASEBKGND = 20
当窗口背景必须被擦除时(例在窗口改变大小时)
WM_SYSCOLORCHANGE = 21
当系统颜色改变时,发送此消息给所有顶级窗口
WM_ENDSESSION = 22
发送此消息给一个对话框程序去更改焦点位置
WM_SPOOLERSTATUS = 42
每当打印管理列队增加或减少一条作业时发出此消息
WM_DRAWITEM = 43
当button,combobox,listbox,menu的可视外观改变时发送
此消息给这些空件的所有者
WM_MEASUREITEM = 44
一个窗口被销毁
WM_MOVE = 3
移动一个窗口
WM_SIZE = 5
改变一个窗口的大小
WM_ACTIVATE = 6

windows7对话框的分类

windows7对话框的分类

windows7对话框的分类
Windows 7操作系统中的对话框可以根据其功能和用途进行分类。

以下是对Windows 7对话框的分类:
1. 通用对话框,Windows 7包含许多通用对话框,如打开文件对话框、保存文件对话框、打印对话框等。

这些对话框用于执行常见的文件操作,例如打开、保存和打印文件。

2. 控制面板对话框,Windows 7的控制面板包含多个对话框,用于管理系统设置和配置。

例如,显示属性对话框用于更改显示设置,声音属性对话框用于配置音频设置,网络和共享中心对话框用于管理网络连接等。

3. 窗口属性对话框,这些对话框用于配置窗口的外观和行为。

例如,文件夹选项对话框允许用户自定义文件夹的显示选项,包括图标大小、排序方式等。

4. 用户账户对话框,Windows 7包含用户账户管理对话框,用于管理用户账户的权限、密码、个人资料等。

5. 系统工具对话框,Windows 7还包含一些系统工具对话框,用于执行系统维护和故障排除任务。

例如,任务计划程序对话框用于配置自动化任务,设备管理器对话框用于管理硬件设备。

这些是Windows 7中常见的对话框分类,每种对话框都有其特定的功能和用途,帮助用户完成各种任务和操作。

Windows 所有消息 的列表

Windows 所有消息 的列表

hwnd 32位的窗口句柄。

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

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

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

lParam 通常是一个指向内存中数据的指针。

由于W P a r a m、l P a r a m 和P o i n t e r都是3 2位的,因此,它们之间可以相互转换。

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程序设计课程复习题

Windows程序设计课程复习题

Windows程序设计复习题一选择题1 下列程序设计方法中,()是一种基于对象的程序设计方法。

A: MFC程序设计B: 使用WindowsAPI编程C: 使用VisualBasic语言编程 D: 使用C#程序设计语言编程2 MFC程序框架中,最先执行的函数是()。

A: WinMain函数B: CWinApp类的构造函数C: CWinApp类的InitInstance函数D: Cwnd的OnCreate函数3 CWinApp类中用()成员函数实现了对消息环的封装。

A: InitInstance( ) B: Run()C: OnIdle() D: WndProc()4 消息的4个参数中,表示消息类型的参数是()。

A: HWND hwnd B: messageID C: wParam D: lParam5下列各消息中,与程序的菜单命令、工具栏按钮或对话框按钮相对应的消息是()。

A: WM_CHAR B: WM_COMMAND C: WM_CREATE D: WM_PAINT6 MFC消息映射机制中,下列消息映射表BEGIN_MESSAGE_MAP(CGraphicsView, CScrollView)ON_WM_PAINT()END_MESSAGE_MAP()把WM_PAINT消息映射到()。

A: CGraphicsView类OnPaint函数B: CGraphicsView类OnDraw函数。

C: CScrollView类的OnPaint函数D: CScrollView类的OnDraw成员函数。

7 下列MFC类中,不直接支持消息映射的MFC基类是(),A: CCmdTarget B: CWinAPP C: CWnd D: CMap8 下列集合类中,其内部是使用散列表技术实现的MFC类的是()。

A: CArray B: CList C: CMap D: CPtrList9 下列CWnd类成员函数中,用于任何消息的可覆盖函数是()。

列表框消息大全

列表框消息大全
LB_GETHORIZONTALEXTENT 0 0 返回列表框的可滚动的宽度(象素)
LB_GETITEMDATA 索引 0 每个列表项都有一个32位的附加数据.该函数返回指定列表项的附加数据。若出错则函数返回LB_ERR.
LB_GETTOPINDEX 0 0 返回列表框中第一个可见项的索引,若出错则返回LB_ERR.
LB_INITSTORAGE 表项数 内存字节数 本操作只适用于Windows95版本,当你将要向列表框中加入很多表项或有很大的表项时,本操作将预先分配一块内存,以免在今后的操作中一次一次地分配内存,从而加快程序运行速度。
LB_DIR DDL_SYSTEM 指向通配符地址 列出系统属性的文件名。
LB_FINDSTRING 开始表项序号 字符串地址 查找匹配字符串,忽略大小写,从指定开始表项序号开始查找,当查到某表项的文本字符串的前面包括指定的字符串则结束,找不到则转到列表框第一项继续查找,直到查完所有表项,如果wParam为-1则从列表框第一项开始查找,如果找到则返回表项序号,否则返回LB_ERR。如:表项字符串为"abc123"和指定字串"ABC"就算匹配。
LB_GETSELITEMS 数组的大小 缓冲区 本操作仅用于多重选择列表框,用来获得选中的项的数目及位置。参数lParam指向一个整型数数组缓冲区,用来存放选中的列表项的索引。wParam说明了数组缓冲区的大小。本操作返回放在缓冲区中的选择项的实际数目,若出错函数返回LB_ERR.
LBS_OWNERDRAWFIXED 指定自绘式列表框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度。在控件被创建时父窗口将收到WM_MEASUREITEM 消息,当需要重绘时父窗口将收到 WM_DRAWITEM 消息。

键盘输入工作原理

键盘输入工作原理

键盘输入工作原理作者:飄lá┽蕩去来源:博客园发布时间:2007-11-12 14:37 阅读:1809 次原文链接[收藏]Windows 窗体编程键盘输入工作原理Windows 窗体通过引发键盘事件来处理键盘输入以响应 Windows 消息。

大多数Windows 窗体应用程序都通过处理键盘事件来以独占方式处理键盘输入。

但是,必须了解键盘消息的工作方式,才能实现更高级的键盘输入方案(如在按键到达控件之前截获它们)。

本主题描述 Windows 窗体能够识别的按键数据的类型,并概述键盘消息的传送方式。

有关键盘事件的信息,请参见使用键盘事件。

按键的类型Windows 窗体将键盘输入标识为由按位Keys枚举表示的虚拟键代码。

使用Keys枚举,可以综合一系列按键以生成单个值。

这些值与 WM_KEYDOWN 和WM_SYSKEYDOWN Windows 消息所伴随的值相对应。

可通过处理KeyDown或KeyUp事件来检测大多数物理按键操作。

字符键是Keys枚举的子集,它们与WM_CHAR 和 WM_SYSCHAR Windows 消息所伴随的值相对应。

如果通过组合按键得到一个字符,则可以通过处理KeyPress事件来检测该字符。

或者,可以使用由Visual Basic 编程接口公开的Keyboard来发现已按下的键并发送它们。

有关更多信息,请参见访问键盘。

键盘事件的顺序正如上面列出的那样,在一个控件上可能出现三个与键盘相关的事件。

以下顺序是发生这些事件的常规顺序:1.用户按“a”键,该键将被预处理和调度,而且会发生KeyDown事件。

2.用户按住“a”键,该键将被预处理和调度,而且会发生KeyPress事件。

在用户按住某个键时,此事件会发生多次。

3.用户松开“a”键,该键将被预处理和调度,而且会发生KeyUp事件。

键的预处理像其他消息一样,键盘消息是在窗体或控件的WndProc方法中处理的。

但是,在处理键盘消息之前,PreProcessMessage方法会调用一个或多个方法,这些方法可被重写以处理特殊的字符键和物理按键。

window message

window message

消息,就是指Wi n d o w s发出的一个通知,告诉应用程序某个事情发生了。

例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Wi n d o w s 发送一个消息给应用程序。

消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。

例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。

这个记录类型叫做T M s g,它在Wi n d o w s单元中是这样声明的:t y p eTMsg = packed recordhwnd: HWND; / /窗口句柄message: UINT; / /消息常量标识符wParam: WPA R A M ; // 32位消息的特定附加信息lParam: LPA R A M ; // 32位消息的特定附加信息time: DWORD; / /消息创建时的时间pt: TPoint; / /消息创建时的鼠标位置e n d ;消息中有什么?是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释:hwnd 32位的窗口句柄。

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

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

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

lParam 通常是一个指向内存中数据的指针。

由于W P a r a m、l P a r a m和P o i n t e r都是3 2位的,因此,它们之间可以相互转换。

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_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_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消息分类

Windows消息分类

Windows消息分类Windows应用程序都是基于消息驱动的,消息一般分为标准Windows消息、控件通知消息和命令消息三大类。

1. 标准Windows消息标准Windows消息,除WM_COMMAND消息外,所有以WM为前缀的消息都是标准Windows消息。

标准Windows消息只能由窗口类和视图类进行处理。

标准Windows消息都有黙认的处理函数,这些函数在CWnd类中过行了预定义,处理函数均以前缀On开头。

标准Windows消息主要分为三类:(1)键盘消息当用户按下键盘上的某一个键时,会产生WM_CHAR消息。

该消息的处理函数为OnChar.(2) 鼠标消息WM_MOUSEMOVE WM_LBUTTONDOWN WM_RBUTTONDOWN(3)窗口消息所有窗口的变化,包括内容重绘、窗口最大化、窗口重新定义大小、窗口滚动条滚动等产生的消息均属于窗口消息。

当调用成员函数UpdateWindow 或RedrawWindow要求重新绘制窗口内容时,将会发送WM_PAINT消息,当窗口最小化后再还原或被其它窗口遮盖后又移开时,也会发送WM_PAINT消息。

WM_PAINT消息的处理函数为OnPaint.2. 控件消息(WM_COMMAND)由控件产生的消息,例如按钮,列表框的选择等都会产生通告消息。

控件消息是从控件传送给父窗口的消息。

发送控件消息的控件在Visual C++中使用唯一ID号来进行标识,使用控件类来操纵相应的控件。

与标准Windows消息一样,控件消息也在视图类、窗口类进行处理。

但是,如果用户单击按钮控件,所发出的控件通知消息BN_CLICKED将作为命令消息来处理。

3. 命令消息(WM_COMMAND)命令消息是菜单项、工具栏按钮、加速键等用户界面对象发送的WM_COMMAND消息。

命令消息可以被文档、视图、窗口、应用程序等对象处理。

发送命令消息的用户界面对象在Visual C++中也使用唯一的ID号来标识。

MFC消息机制详解

MFC消息机制详解

消息映射的实现Windows消息概述Windows应用程序的输入由Windows系统以消息的形式发送给应用程序的窗口。

这些窗口通过窗口过程来接收和处理消息,然后把控制返还给Windows。

消息的分类队列消息和非队列消息从消息的发送途径上看,消息分两种:队列消息和非队列消息。

队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。

这里,对消息队列阐述如下:Windows维护一个系统消息队列(System message queue),每个GUI线程有一个线程消息队列(Thread message queue)。

鼠标、键盘事件由鼠标或键盘驱动程序转换成输入消息并把消息放进系统消息队列,例如WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_CHAR等等。

Windows 每次从系统消息队列移走一个消息,确定它是送给哪个窗口的和这个窗口是由哪个线程创建的,然后,把它放进窗口创建线程的线程消息队列。

线程消息队列接收送给该线程所创建窗口的消息。

线程从消息队列取出消息,通过Windows把它送给适当的窗口过程来处理。

除了键盘、鼠标消息以外,队列消息还有WM_PAINT、WM_TIMER和WM_QUIT。

这些队列消息以外的绝大多数消息是非队列消息。

系统消息和应用程序消息从消息的来源来看,可以分为:系统定义的消息和应用程序定义的消息。

系统消息ID的范围是从0到WM_USER-1,或0X80000到0XBFFFF;应用程序消息从WM_USER(0X0400)到0X7FFF,或0XC000到0XFFFF;WM_USER到0X7FFF范围的消息由应用程序自己使用;0XC000到0XFFFF范围的消息用来和其他应用程序通信,为了ID的唯一性,使用::RegisterWindowMessage来得到该范围的消息ID。

消息结构和消息处理消息的结构为了从消息队列获取消息信息,需要使用MSG结构。

lte每天学习总结—系统消息

lte每天学习总结—系统消息

1.系统消息定义系统消息system information 是指这样的一些信息:他表示的是当前小区或网络的一些特性及用户的一些公共特征,与特定用户无关。

通过接受系统的系统信息,移动用户可以得到当前网络,小区的一些基本特征,系统可以在小区中通过特定的系统广播,可以标识出小区的覆盖范围,给出特定的信道信息。

2.系统消息的类型系统消息可以分为3种类型,如下1. 主信息快(MIB ),由众多IE 组成,包含一定能够数量的最基本信息且被传输最多次数的信息2. 系统信息块(SIB1),由众多IE 组成,包含评估一个UE 是否被允许接入到一个小区的相关信息,并定义了其他SI的相关调度信息3. 系统信息(SI),有众多IE组成,用于传送一个或多个SIB信元(SIB2——SIB8)3.系统消息的映射调度系统消息的调度4.系统消息的获取1.触发系统消息获取的原因UE应该在下列情况下应用系统消息的获取过程:➢在开机选择小区的时候,或在从另一种RAT进入E—UTRA之后,进行小区的选择或重选。

➢从丢失覆盖后恢复➢收到一个更新通知,系统消息已经改变➢超过最大有效时间(6小时)5.系统消息内容1.MIB(master information block)↓↓MIB(MasterInformationBlock)RRC-MSG..msg0> 07 00000111 T....struBCCH-BCH-Message//BCH传输消息......struBCCH-BCH-Message........message1> A8 101----- ..........dl-Bandwidth:n100 (5):系统带宽(100RB,20MHz)..........phich-Config:PHICH配置信息---0---- ............phich-Duration:normal (0)----10-- ............phich-Resource:one (2) :对应PHICH的参数Ng, ={1/6, 1/2, 1, 2}------002> E0 111000-- ..........systemFrameNumber:00111000(38):系统帧号------003> 00 00000000 ..........spare:0000000000(00 00)1.SIB1↓↓SIB1(SystemInformationBlock1)RRC-MSG..msg0> 06 00000110 T....struBCCH-DL-SCH-Message//SCH共享信道消息......struBCCH-DL-SCH-Message........message1> 50 0------- *..........c1-1------ *............systemInformationBlockType1--010--- *..............cellAccessRelatedInfo:小区接入相关信息-----0-- *................plmn-IdentityList------002> 51 0------- *..................PLMN-IdentityInfo....................plmn-Identity-1------ *......................mcc:460--0100--........................MCC-MNC-Digit:0x4 (4)------013> 80 10------........................MCC-MNC-Digit:0x6 (6)--0000--........................MCC-MNC-Digit:0x0 (0)......................mnc:00------0- *-------04> 01 000-----........................MCC-MNC-Digit:0x0 (0)---0000-........................MCC-MNC-Digit:0x0 (0)-------1 ....................cellReservedForOperatorUse:notReserved (1):小区非驻留5> 80 100000006> 0C 00001100 ................trackingAreaCode:1000000000001100(80 0C):TAC7> 81 100000018> 61 011000019> 23 0010001110> D8 1101----...........cellIdentity:1000000101100001001000111101(08 16 12 3D):CI----1---................cellBarred:notBarred (1):小区未被禁止-----0--................intraFreqReselection:allowed (0):同频重选允许------0-................csg-Indication:FALSE..............cellSelectionInfo:小区选择信息-------0 *11> 1A 000110--................q-RxLevMin:-0x40 (-64):最小电平?------1012> 70 0111----..............freqBandIndicator:0x28 (40):使用频段//TDD频段号:36~42..............schedulingInfoList:指示SIB2~13的目录信息----000013> 10 0------- *................SchedulingInfo-001----..................si-Periodicity:rf16 (1)..................sib-MappingInfo:sib映射信息----000014> 81 1------- *-00000--....................SIB-Type:sibType3 (0):SIB3..............tdd-Config------0115> 3E 0-------................subframeAssignment:sa2 (2):子帧配置类型SA2-0111---................specialSubframePatterns:ssp7 (7):特殊子帧配置类型SSP7-----110 ..............si-WindowLength:ms40 (6)16> 30 00110---..............systemInfoValueTag:0x6 (6)-----000 *!! Can not explain:17> 00 0000000018> 00 0000000019> 00 000000002.SIB2IE SystemInformationBlockType2 包括公共信道和共享信道的信息。

初级 WINDOWS API C++语言版

初级 WINDOWS API C++语言版

初级WINDOWS API C++语言版编程(一)原创:豆豆龙2002年3月6日本站原创: 豆豆龙当我们使用着漂亮的界面,方便快捷的应用程序的时候。

我们才会发现,以前曾编写的程序是多么的粗糙(TC编写的程序)。

简单的界面,16色的显示系统,大大的落后于计算机的发展。

简单的说就是杀鸡用牛刀。

如何该改变这种情况呢?Microsoft公司在推出windows操作系统的时候给出了简单易行的解决方案。

这就是WINDOWS平台API 应用程序接口。

当然API也是发展的,它从WIN 16 API发展到了现在普遍使用的WIN 32 API。

只有充分理解API函数功能和用法,才能深入到WINDOWS系统的内部,才能充分挖掘出操作系统给我们提供的强大功能。

现在就让我们放弃那DOS应用程序,进入WINDOWS编程的海洋之中吧。

要想了解WINDOWS API那么我们必须先了解WINDOWS下的程序是如何进行驱动的。

同学们可以很清楚的发现到,当你在使用WINDOWS记事本的时候,当键盘输入字符的时候字就会出现在屏幕上。

当你移动鼠标的时候,光标就会在屏幕上移动。

双击鼠标、单击鼠标就会有相应的事件发生。

这些都是由于WINDOWS具有的事件驱动的属性造成的。

比如说当你按下键盘的字符键的时候,消息队列就会向程序发送WM_CHAR的消息,如果你所写的程序中含有处理这个消息的函数,程序就会执行它。

为了更好的了解WINDOWS编程,这里我必须介绍几个基本的概念:1,句柄:它是WINDOWS编程的基础。

一个句柄是指WINDOWS在内存中使用的一个唯一的整数质,是一个4个字节长的数值,用于标识应用程序中不同对象和相同对象的不同实例。

这里我列出几种WINDOWS常用的句柄:HWND: 标示窗口句柄HINSTANCE:标示当前实例句柄HCOURSOR:标示光标句柄HFONT: 标示字体句柄HPEN:标示画笔句柄HBRUSH:标示画刷句柄HDC:标示设备环境句柄HBITMP:标示位图句柄HICON:标示图标句柄HMENU:标示菜单句柄HFILE:标示文件句柄由于WINDOWS应用程序利用WINDOWS消息来与其它的WINDOWS应用程序及WINDOWS系统进行消息交换。

消息的种类

消息的种类

4.5 MFC 消息映射机制在MFC中,对消息的处理是采用消息映射机制,本节就将对消息及MFC的消息映射机制做一个深入的讲解。

4.5.1 消息的种类在WINDOWS 程序设计中,消息是个极为重要的概念,用户通过窗口界面的各种操作最后都转化为发送到程序中的对象的各种消息,下面就向您介绍在WINDOWS 程序设计中最常用的一些消息:1.键盘消息z WM_CHAR,该消息的处理函数OnChar()z WM_KEYDOWN,用户按下一个非系统键z WM_KEYUP,在非系统键被释放时产生这三个消息用来处理用户的键盘数据,当用户在键盘上按下某个键的时候,会产生WM_KEYDOWN 消息,释放按键的时候又回产生WM_KEYUP 消息,所以WM_KEYDOWN 与WM_KEYUP 消息一般总是成对出现的,至于WM_CHAR 消息,是在用户的键盘输入能产生有效的ASCII 码时才会发生。

这里特别提醒要注意前两个消息与WM_CHAR 消息在使用上是有区别的。

在前两个消息中,伴随消息传递的是按键的虚拟键码,所以这两个消息可以处理非打印字符,如方向键,功能键等。

而伴随WM_CHAR消息的参数是所按的键的ASCII 码,ASCII 码是可以区分字母的大小写的。

而虚拟键码是不能区分大小写的。

三种消息原型分别如下:afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);2.鼠标消息z WM_MOUSEMOVE,用户将鼠标移进窗口或在窗口中移动z WM_LBUTTONDOWN,用户按下左键z WM_LBUTTONUP,用户释放左键z WM_LBUTTONDBCLICK,用户双击左键z WM_RBUTTONDOWN,用户按下右键z WM_RBUTTONUP,用户释放右键z WM_RBUTTONDBCLICK,用户双击右键这组消息是与鼠标输入相关的,WM_MOUSEMOVE 消息发生在鼠标移动的时候,剩余的六个消息则分别对应于鼠标左右键的按下、释放、双击事件,要指出的是WINDOWS 系统并不是在鼠标每移动一个像素时都产生MOUSEMOVE 消息,这一点要特别注意。

消息号消息类型消息名称消息参数

消息号消息类型消息名称消息参数

消息号消息类型消息名称消息参数
【原创实用版】
目录
1.消息号
2.消息类型
3.消息名称
4.消息参数
正文
在现代社会,信息传播速度极快,各种消息充斥在我们的日常生活中。

为了方便对这些消息进行分类和管理,我们通常会将消息分为不同的类型,如新闻、通知、公告等。

每条消息都有其独特的名称,以区别于其他消息。

同时,消息参数则是对消息具体内容的描述,它可以帮助我们更好地理解消息的内容和背景。

消息号是消息的唯一标识符,它可以帮助我们在海量信息中快速定位和查找特定的消息。

每条消息都有一个唯一的消息号,通常由数字或字母组成。

通过消息号,我们可以方便地追踪和查找相关消息,从而提高信息处理的效率。

消息类型是对消息内容的一种分类方式,它可以帮助我们对消息进行归类和管理。

常见的消息类型包括新闻、通知、公告、提醒等。

每种消息类型都有其特定的用途和目的,我们可以根据消息类型来判断消息的重要性和紧急程度。

消息名称是消息的标题,它通常用来概括消息的主要内容。

消息名称应当简洁明了,能够准确地传达消息的主题。

通过消息名称,我们可以快速了解消息的主要内容,从而决定是否需要进一步查看和处理。

消息参数是对消息具体内容的描述,它可以帮助我们更好地理解消息
的背景和相关信息。

消息参数通常包括事件时间、地点、参与人员等信息。

通过消息参数,我们可以更全面地了解消息的具体情况,从而为后续的处理和决策提供依据。

总之,消息号、消息类型、消息名称和消息参数共同构成了一条完整的消息,它们为我们提供了获取和处理信息的基本框架。

Windows程序设计复习资料(完整答案)

Windows程序设计复习资料(完整答案)

Windows程序设计复习资料(完整答案)⼀、单项选择题:1.WinMain()函数的⼯作。

WinMain()函数是Windows程序的⼊⼝点在WinMain中进⾏:注册窗体类、建⽴窗体、显⽰窗体、更新窗体、建⽴消息循环2.⾮MFC的Windows程序中,不是处理WM_PAINT消息的时候怎样获得客户区的设备环境句柄。

BeginPaint ----------EndPaintGetDC---------------ReleaseDC(成对出现)利⽤GetDC()函数获取设备环境句柄3.句柄的含义。

句柄是⼀个(通常为32位的)⽆符号整数(unsigned int),它代表⼀个内核对象内核对象在应⽤层的表⽰4.在MM_TEXT映射模式下,什么情况下客户坐标和逻辑坐标可能不同。

当窗⼝客户区有滚动条时客户坐标和逻辑坐标可能不同5.Windows程序的控制流程。

Windows程序没有固定的控制流程,事件驱动程序控制流程6.事件驱动、消息驱动的概念。

事件驱动程序设计是⼀种全新的程序设计⽅法,它不是由事件的顺序来控制,⽽是由事件的发⽣来控制,⽽这种事件的发⽣是随机的、不确定的,并没有预定的顺序,这样就允许程序的的⽤户⽤各种合理的顺序来安排程序的流程。

消息是事件到达Windows内部后的称呼7.对话框、控件的作⽤。

对话框是程序与⽤户之间进⾏交互,接收⽤户输⼊、并把数据显⽰出来的⼀个窗⼝;控件是⽤户可与之交互以输⼊或操作数据的对象。

控件通常出现在对话框中或⼯具栏上。

8.MFC中怎样处理WM_PAINT消息。

在OnDraw()函数中处理该消息9.GetMessage()函数在什么情况下返回0,从⽽导致消息循环终⽌,程序结束。

在接收到WM_QUIT消息时返回010.Windows中,应⽤程序的输出是怎样进⾏的。

通过设备描述表DC(Device Context)来进⾏应⽤程序与物理设备之间的交互11.MFC中,⼤多数类的基类都是什么。

操作系统windows--知识点

操作系统windows--知识点

1.知识要点1.1.Windwos账号体系分为用户与组,用户的权限通过参加不同的组来授权用户:组:1.2.账号SID平安标识符是用户的部名,用于识别用户身份,它在用户创立时由系统自动产生。

在Windows系统中默认用户中,其SID的最后一项标志位都是固定的,比方administrator 的SID最后一段标志位是500,又比方最后一段是501的话则是代表GUEST的。

1.3.账号平安设置通过本地平安策略可设置账号的策略,包括密码复杂度、长度、有效期、锁定策略等:设置方法:"开场〞->"运行〞输入secpol.msc,立即启用:gpupdate /force1.4.账号数据库SAM文件sam文件是windows的用户数据库,所有用户的登录名及口令等相关信息都会保存在这个文件中。

可通过工具提取数据,密码是加密存放,可通过工具进展破解。

1.5.文件系统NTFS (New Technology File System),是WindowsNT 环境的文件系统。

新技术文件系统是Windows NT家族(如,Windows 2000、Windows *P、Windows Vista、Windows 7和windows 8.1)等的限制级专用的文件系统(操作系统所在的盘符的文件系统必须格式化为NTFS的文件系统,4096簇环境下)。

NTFS取代了老式的FAT文件系统。

在NTFS分区上,可以为共享资源、文件夹以及文件设置访问许可权限。

许可的设置包括两方面的容:一是允许哪些组或用户对文件夹、文件和共享资源进展访问;二是获得访问许可的组或用户可以进展什么级别的访问。

访问许可权限的设置不但适用于本地计算机的用户,同样也应用于通过网络的共享文件夹对文件进展访问的网络用户。

与FAT32文件系统下对文件夹或文件进展访问相比,平安性要高得多。

另外,在采用NTFS格式的Win 2000中,应用审核策略可以对文件夹、文件以及活动目录对象进展审核,审核结果记录在平安日志中,通过平安日志就可以查看哪些组或用户对文件夹、文件或活动目录对象进展了什么级别的操作,从而发现系统可能面临的非法访问,通过采取相应的措施,将这种平安隐患减到最低。

Windows系统文件的扩展名及其分类对照表

Windows系统文件的扩展名及其分类对照表

下面还列出Windows系统文件的扩展名及其分类对照表,以备查阅:1. "323" "H.323 Internet 电话技术"2. "386" "虚拟设备驱动程序"3. "ACA" "Microsoft Agent Character File (HTTP format)"4. "ACF" "Microsoft Agent Character File (HTTP format)"5. "ACG" "Microsoft Agent 预览文件"6. "ACL" "自动更正列表文件"7. "ACS" "Microsoft Agent Character File"8. "ACW" "辅助功能向导设置"9. "ADE" "Microsoft Access 项目扩展"10. "ADN" "Microsoft Access 空白项目模板"11. "ADP" "Microsoft Access 项目"12. "AIF" "AIFF 格式声音"13. "AIFC" "AIFF 格式声音"14. "AIFF" "AIFF 格式声音"15. "ANI" "动画光标"16. "ASA" "活动服务器文档"17. "ASD" "ASF Stream Description File"18. "ASF" "Windows Media 音频/视频文件"19. "ASP" "活动服务器文档"20. "ASX" "Windows Media 音频/视频快捷方式"21. "AU" "AU 格式声音"22. "AUDIOCD" "AudioCD"23. "A VI" "视频剪辑"24. "AW" "应答向导文件"25. "BKF" "Windows 备份文件"26. "BLG" "性能监视器文件"27. "BMP" "BMP 图像"28. "CA T" "安全编录"29. "CDA" "CD 音频曲目"30. "CDF" "频道文件"31. "CDX" "活动服务器文档"32. "CER" "安全证书"33. "CHK" "还原了文件碎片"34. "CHM" "已编译的HTML 帮助文件"35. "CLP" "剪贴板剪贴"36. "CNF" "快速拨号"37. "COL" "HTML 帮助文件"38. "CPL" "控制面板扩展"39. "CRL" "证书吊销列表"40. "CRT" "安全证书"41. "CSS" "级联样式表文档"42. "CSV" "Microsoft Excel 逗号分隔值文件"43. "CUR" "光标"44. "DB" "数据库文件"45. "DCS" "数据库内容源"46. "DER" "安全证书"47. "DESKLINK" "DESKLINK 文件"48. "DET" "Office Data File"49. "DIB" "BMP 图像"50. "DIC" "文本文档"51. "DIF" "Microsoft Excel 数据交换格式"52. "DOC" "Microsoft Word 文档"53. "DOCHTML" "Microsoft Word HTML 文档"54. "DOCMHTML" "DOCMHTML 文件"55. "DOT" "Microsoft Word 模板"56. "DOTHTML" "Microsoft Word HTML 模板"57. "DQY" "Microsoft Excel ODBC 查询文件"58. "DRV" "设备驱动程序"59. "DSN" "数据源名称"60. "DUN" "拨号网络文件"61. "DVD" "DVD"62. "ECS" "Exchange Server 内容源"63. "ELM" "Microsoft Office 主题文件"64. "EMF" "EMF 图像"65. "EML" "Outlook Express 邮件消息"66. "EXC" "文本文档"67. "FAD" "Office 数据文件"68. "FA V" "FAV 文件"69. "FCS" "文件共享内容源"70. "FFA" "文件检索索引"71. "FFL" "文件检索索引"72. "FFT" "文件检索索引"73. "FFX" "文件检索索引"74. "FON" "字体文件"75. "FPDOCLIB" "Microsoft FrontPage Document Library" 76"FPHOMEOP" Microsoft FrontPage Home Page Open"77. "FPHOMEPG" "Microsoft FrontPage 主页"78. "FPHTML""Microsoft FrontPage HTML 文档"79. "FPLIST" "Microsoft FrontPage List"80. "FPNOPUB" "Microsoft FrontPage Dont Publish"81. "FPOPEN" "Microsoft FrontPage 打开文件"82. "FPSURVEY" "Microsoft FrontPage Survey"83. "FPWEB" "FPWEB 文件"84. "FRG" "FRG 文件"85. "GIF" "GIF 图像"86. "GRA" "Microsoft Graph 图表"87. "GRP" "Microsoft 程序组"88. "HLP" "帮助文件"89. "HOL" "Microsoft Outlook Holidays"90. "HT" "超级终端文件"91. "HTA" "HTML Application"92. "HTC" "HTC 文件"93. "HTM" "HTML Document"94. "HTML" "HTML Document"95. "HTT" "HyperText 模板"96. "HTX""用于Internet 数据库的HTML 模板"97. "ICC" "ICC 配置文件"98. "ICM" "ICC 配置文件"99. "ICO" "图标"100. "ICS" "iCalendar 文件"101. "IDC" "IDC 文件"102. "III" "Intel IPhone 兼容"103. "INF" "安装信息"104. "INI" "配置设置"105. "INS" "Internet 通讯设置"106. "IQY" "Microsoft Excel Web 查询文件"107. "ISP" "Internet 通讯设置"108. "ITS" "Internet Document Set"109. "ITSS" "Microsoft Infotech Storage System File" 110. "IVF" "Indeo 视频文件"111. "JFIF" "JPEG 图像"112. "JOB" "任务对象"113. "JOD" "Microsoft.Jet.OLEDB.4.0"114. "JPE" "JPEG 图像"115. "JPEG" "JPEG 图像"116. "JPG" "JPEG 图像"117. "JS" "JScript Script File"118. "JSE" "JScript Encoded Script File"119. "LDB" "Microsoft Access 记录锁定信息"120. "LEX" "词典文件"121. "LOG" "文本文档"122"LWV" Microsoft Linguistically Enhanced Sound File" 123. "M1V" "电影文件(MPEG)"124. "M3U" "M3U 文件"125. "MAD" "Microsoft Access 模块快捷方式"126. "MAF" "Microsoft Access 窗体快捷方式"127. "MAG" "Microsoft Access 图表快捷方式"128. "MAM" "Microsoft Access 宏快捷方式"129. "MAPIMAIL" "MAPIMAIL 文件"130. "MAQ" "Microsoft Access 查询快捷方式"131. "MAR" "Microsoft Access 报表快捷方式"132. "MAS"Microsoft Access 存储过程快捷方式" 133. "MA T" "Microsoft Access 表快捷方式"134. "MAU" "MAU 文件"135. "MAV" "Microsoft Access 视图快捷方式" 136"MAW"Microsoft Access 数据访问页快捷方式" 137. "MDA" "Microsoft Access 加载项"138. "MDB" "Microsoft Access 应用程序"139. "MDBHTML" "Microsoft Access HTML 文档" 140. "MDE" "Microsoft Access MDE 数据库"141. "MDN""Microsoft Access 空白数据库模板"142. "MDT" "Microsoft Access 加载项数据"143. "MDW" "Microsoft Access 工作组信息"144. "MDZ""Microsoft Access 数据库向导模板"145. "MGC" "媒体目录文件"146. "MHT" "MHTML Document"147. "MHTML" "MHTML Document"148. "MID" "MIDI 序列"149. "MIDI" "MIDI 序列"150. "MML" "媒体目录文件"151. "MMM" "媒体剪辑"152. "MMW" "媒体目录文件"153. "MP2" "电影文件(MPEG)"154. "MP2V" "电影文件(MPEG)"155. "MP3" "MP3 格式声音"156. "MPA" "电影文件(MPEG)"157. "MPE" "电影文件(MPEG)"158. "MPEG" "电影文件(MPEG)"159. "MPF" "Media Package 文件"160. "MPG" "电影文件(MPEG)"161. "MPV2" "电影文件(MPEG)"162. "MSC" "Microsoft 通用管理文档"163. "MSG" "Outlook 项目"164. "MSI" "Windows Installer 软件包"165. "MSP" "Windows Installer 修补程序"166. "MSRCINCIDENT" "Microsoft 远程访问事件" 167. "MSSTYLES" "Windows 可视化风格文件"168. "MSWMM" "Windows Movie Maker 项目"169. "NCS" "Lotus Notes 内容源"170. "NFO" "MSInfo 文档"171. "NICK" "Office 数据文件"172. "NK2" "Office 数据文件" 173."NMW""Microsoft NetMeeting T126 兼容白板文档" 174. "NWS" "Outlook Express 新闻消息"175. "OBD" "OBD 文件"176. "OBT" "OBT 文件"177. "OBZ" "OBZ 文件"178. "OCX" "ActiveX 控件"179. "ODC" "Microsoft Office 数据连接"180. "ODCCUBEFILE" "ODCCUBEFILE 文件"181. "ODCDATABASEFILE" "ODCDATABASEFILE 文件" 182. "ODCNEWFILE" "ODCNEWFILE 文件"183. "ODCTABLEFILE" "ODCTABLEFILE 文件"184. "OFT" "Outlook 项目模板"185. "OPC" "Microsoft 清理向导文件"186. "OPS" "Office 10 设置文件"187. "OQY" "Microsoft Excel OLAP 查询文件"188. "OSS" "Office 搜索"189. "OST" "Office 数据文件"190. "OTF" "OpenType 字体文件"191. "P10" "证书申请"192. "P12" "Personal Information Exchange"193. "P7B" "PKCS #7 证书"194. "P7C" "数字标识文件"195. "P7M" "PKCS #7 MIME 消息"196. "P7R" "PKCS #7 证书"197. "P7S" "PKCS #7 签名"198. "PAB" "Office 数据文件"199. "PBK" "拨号电话簿"200. "PCB" "PCB 文件"201. "PCD" "Photo CD 图像"202. "PCX" "PCX 图像"203. "PFM" "Type 1 字体文件"204. "PFX" "Personal Information Exchange"205. "PIP" "Microsoft Office 设置文件"206. "PKO" "公钥安全对象"207. "PMA" "性能监视器文件"208. "PMC" "性能监视器文件"209. "PML" "性能监视器文件"210. "PMR" "性能监视器文件"211. "PMW" "性能监视器文件"212. "PNG" "PNG 图像"213. "POT" "Microsoft PowerPoint 模板"214. "POTHTML" "Microsoft PowerPoint HTML 模板" 215. "PPA" "Microsoft PowerPoint 加载项"216. "PPS" "Microsoft PowerPoint 幻灯片放映"217. "PPT" "Microsoft PowerPoint 演示文稿"218. "PPTHTML" "Microsoft PowerPoint HTML 文档"219. "PPTMHTML" "PPTMHTML 文件"220. "PRF" "msrating.dll,-3001"221. "PST" "Office 数据文件"222. "PSW" "Password Backup"223. "PWZ" "Microsoft PowerPoint 向导"224. "QDS" "目录查询"225. "RA T" "msrating.dll,-3000"226. "RDP" "远程桌面连接"227. "REG" "注册表项"228. "RMI" "MIDI 序列"229. "RNK" "拨号快捷方式"230. "RQY" "Microsoft Excel OLE DB 查询文件" 231. "RTF" "RTF 格式"232. "RWZ" "Office 数据文件"233. "SC2" "Microsoft Schedule+ 应用程序" 234. "SCD" "Microsoft Schedule+ 应用程序" 235. "SCH" "Microsoft Schedule+ 应用程序" 236. "SCP" "文本文档"237. "SCT" "Windows Script Component"238. "SDB" "Appfix 软件包"239. "SHB" "将快捷方式插入到文档"240. "SHS" "片段对象"241. "SHTM" "HTML Document"242. "SHTML" "HTML Document"243. "SLK" "Microsoft Excel SLK 数据导入格式" 244. "SLL" "SLL 文件"245. "SND" "AU 格式声音"246. "SNP" "Snapshot 文件"247. "SPC" "PKCS #7 证书"248. "SPL" "Shockwave Flash Object"249. "SST" "Microsoft 系列证书存储"250. "STF" "Microsoft 安装文件"251. "STL" "证书信任列表"252. "STM" "HTML Document"253. "SWF" "Shockwave Flash Object"254. "SYS" "系统文件"255. "TCS" "Tahoe Server 内容源"256. "THEME" "Windows 主题文件"257. "TIF" "TIF 图像"258. "TIFF" "TIF 图像"259. "TTC" "TrueType Collection 字体文件" 260. "TTF" "TrueType 字体文件"261. "TXT" "文本文档"262. "UDL" "Microsoft 数据链接"263. "ULS" "Internet 定位服务"264. "URL" "Internet 快捷方式"265. "VBE" "VBScript Encoded Script File"266. "VBS" "VBScript Script File"267. "VCF" "vCard 文件"268. "VCS" "vCalendar 文件"269. "VXD" "虚拟设备驱动程序"270. "WAB" "数字标识文件"271. "WA V" "波形声音"272. "WAX" "Windows Media 音频快捷方式" 273. "WBK" "Microsoft Word 备份文档"274. "WCS" "Web 站点内容源"275. "WEB" "Office 数据文件"276. "WEBPNP" "Webpnp"277. "WHT" "Microsoft NetMeeting 旧白板文档" 278. "WIZ" "Microsoft Word 向导"279. "WIZHTML" "Microsoft Access HTML 模板" 280. "WLL" "WLL 文件"281. "WM" "Windows Media 音频/视频文件" 282. "WMA" "Windows Media 音频文件"283. "WMD" "Windows Media Player 下载软件包" 284. "WMF" "WMF 图像"285. "WMP" "Windows Media Player 文件"286. "WMS" "Windows Media Player 外观文件" 287. "WMV" "Windows Media 音频/视频文件" 288. "WMX" "Windows Media 音频/视频快捷方式" 289. "WMZ" "Windows Media Player 外观程序包" 290. "WPS" "WPS 文件"291. "WRI" "写入文档"292. "WSC" "Windows Script Component"293. "WSF" "Windows Script File"294. "WSH" "Windows Script Host Settings File" 295. "WTX" "文本文档"296. "WVX" "Windows Media 音频/视频快捷方式" 297. "XLA" "Microsoft Excel 加载宏"298. "XLB" "Microsoft Excel 工作表"299. "XLC" "Microsoft Excel 图表"300. "XLD" "Microsoft Excel 5.0 对话框编辑表" 301. "XLK" "Microsoft Excel 备份文件"302. "XLL" "Microsoft Excel XLL 加载宏"303. "XLM" "Microsoft Excel 4.0 宏"304. "XLS" "Microsoft Excel 工作表"305. "XLSHTML" "Microsoft Excel HTML 文档" 306. "XLSMHTML" "XLSMHTML 文件"307. "XLT" "Microsoft Excel 模板"308. "XLTHTML" "Microsoft Excel HTML 模板" 309. "XLV" "Microsoft Excel VBA 模块"310. "XLW" "Microsoft Excel 工作区"311. "XML" "XML 文档"312. "XNK" "Exchange 快捷方式"313. "XSL" "XSL 样式表"314. "ZAP" "软件安装设置"315. "ZIP" "压缩(zipped)文件夹"。

windows消息机制的工作原理

windows消息机制的工作原理

windows消息机制的工作原理Windows 消息机制是一种用于进程间通信的机制,它通过消息队列将消息发送给目标进程并进行处理。

本文将介绍Windows消息机制的工作原理。

1. 消息队列在Windows操作系统中,每个窗口都有一个与之关联的消息队列。

消息队列是一个先进先出的队列,用于存储发送给窗口的消息。

当有消息发送给窗口时,消息会被添加到消息队列的末尾。

2. 消息循环每个窗口都有一个消息循环,它负责从消息队列中取出消息并进行处理。

消息循环是一个无限循环,不断地从消息队列中取出消息并分发给窗口的回调函数进行处理。

消息循环的伪代码如下所示:```while (GetMessage(&msg, hWnd, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}```在每次循环中,GetMessage函数会从消息队列中取出一个消息。

TranslateMessage函数用于将消息转换为键盘消息,以便处理键盘输入。

DispatchMessage函数负责将消息分发给窗口的回调函数。

3. 消息处理窗口的回调函数(也称为窗口过程)是用于处理消息的函数。

每个窗口都有一个唯一的回调函数,当接收到消息时,回调函数会根据消息类型进行相应的处理。

根据消息的不同,回调函数可以执行一系列操作,例如绘制窗口、响应用户输入等。

4. 消息参数每个消息包含一些参数,用于指定消息的类型和详细信息。

常见的消息参数包括消息类型(例如WM_CREATE、WM_PAINT等)、消息源(例如来自哪个窗口或控件)、消息的附加参数(例如鼠标点击的位置)等。

回调函数根据这些参数来判断如何处理消息。

5. 消息处理顺序Windows消息机制采用先到先服务的原则,即先发送的消息先处理。

当消息循环从消息队列中取出消息时,会按照消息的先后顺序进行处理,确保消息的有序性。

这意味着发送给窗口的消息将按照发送的顺序被处理。

windows及linux操作系统日志记录和查看方法

windows及linux操作系统日志记录和查看方法

常见操作系统日志记录和查看1.Unix系统日志与审计由于Unix种类繁多,各种系统存在一定的差异,但是大致的原理、命令都比较相似,下边的说明均以Linux为例。

1.1Unix系统日志日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。

日志主要的功能有:审计和监测。

他还可以实时的监测系统状态,监测和追踪侵入者等等。

在Unix系统中,有三个主要的日志子系统:连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

进程统计--由系统内核执行。

当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。

进程统计的目的是为系统中的基本服务提供命令使用统计。

错误日志--由syslogd(8)执行。

各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。

另外有许多UNIX 程序创建日志。

像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

常用的日志文件如下:access-log 纪录HTTP/web的传输acct/pacct 纪录用户命令aculog 纪录MODEM的活动btmp 纪录失败的纪录lastlog 纪录最近几次成功登录的事件和最后一次不成功的登录messages 从syslog中记录信息(有的链接到syslog文件)sudolog 纪录使用sudo发出的命令sulog 纪录使用su命令的使用syslog 从syslog中记录信息(通常链接到messages 文件)utmp 纪录当前登录的每个用户wtmp 一个用户每次登录进入和退出时间的永久纪录xferlog 纪录FTP会话utmp、wtmp和lastlog日志文件是多数重用UNIX日志子系统的关键--保持用户登录进入和退出的纪录。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows消息分类
Windows应用程序都是基于消息驱动的,消息一般分为标准Windows消息、控件通知消息和命令消息三大类。

1. 标准Windows消息
标准Windows消息,除WM_COMMAND消息外,所有以WM为前缀的消息都是标准Windows消息。

标准Windows消息只能由窗口类和视图类进行处理。

标准Windows消息都有黙认的处理函数,这些函数在CWnd类中过行了预定义,处理函数均以前缀On开头。

标准Windows消息主要分为三类:
(1)键盘消息
当用户按下键盘上的某一个键时,会产生WM_CHAR消息。

该消息的处理函数为OnChar.
(2) 鼠标消息
WM_MOUSEMOVE WM_LBUTTONDOWN WM_RBUTTONDOWN
(3)窗口消息
所有窗口的变化,包括内容重绘、窗口最大化、窗口重新定义大小、窗口滚动条滚动等产生的消息均属于窗口消息。

当调用成员函数UpdateWindow 或RedrawWindow要求重新绘制窗口内容时,将会发送WM_PAINT消息,当窗口最小化后再还原或被其它窗口遮盖后又移开时,也会发送WM_PAINT消息。

WM_PAINT消息的处理函数为OnPaint.
2. 控件消息(WM_COMMAND)
由控件产生的消息,例如按钮,列表框的选择等都会产生通告消息。

控件消息是从控件传送给父窗口的消息。

发送控件消息的控件在Visual C++中使用唯一ID号来进行标识,使用控件类来操纵相应的控件。

与标准Windows消息一样,控件消息也在视图类、窗口类进行处理。

但是,如果用户单击按钮控件,所发出的控件通知消息BN_CLICKED将作为命令消息来处理。

3. 命令消息(WM_COMMAND)
命令消息是菜单项、工具栏按钮、加速键等用户界面对象发送的WM_COMMAND消息。

命令消息可以被文档、视图、窗口、应用程序等对象处理。

发送命令消息的用户界面对象在Visual C++中也使用唯一的ID号来标识。

通过给界面和命令消息分配相同的ID号,可以把用户界面对象与命令联系起来。

Windows把非命令消息直接发送给窗口类对象,该窗口类中用于处理该消息的处理函数将被调用。

但是,对于命令消息,将把命令消息发送给多个候选对象(称为命令目标),目标中总有一个将调用该命令的处理函数。

注意:由于CWnd类派生于CCmdTarget类,所以凡是从CWnd派生的类,他们既可以接收标准消息,也可以接收命令消息和通告消息。

而对于从CCmdTarget类派生的类只能接收命令消息和通告消息,不能接受标准消息。

********************************************************************************************** MFC是Windows下程序设计的最流行的一个类库,但是该类库比较庞杂,尤其是它的消息映射机制,更是涉及到很多低层的东西,首先我在这里描述一下,Windows 的消息种类:
一般分的话有三种:
1. 标准消息:除了WM_COMMAND,所有的以WM 开头的消息都是标准消息,从CWnd 派生的类,都可以接受此消息。

2.命令消息
来自于菜单、加速键、或者工具栏按钮的消息,这类消息都以WM_COMMAND形式呈现,在MFC 中通过菜单项的标识(ID)来区分不同的命令消息(消息映射机制),在SDK中,通过消息的wParam 参数来区别不同的消息,从CCmdTarget派生的类,都可以接受这类消息。

3. 通告消息
由控件产生的消息,比如:按钮的单击、列表框的选择都会产生这类消息,目的是通告事件的发生,这类消息目的是为了向父窗口(通常是对话框)通知事件的发生,这类消息也是以WM_COMMAND形式呈现的,从CCmdTarget派生的类,都可以收到该消息。

相关文档
最新文档