- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows消息机制.
Windows消息机制
Windows消息机制/ R5 D w2 c/ ]5 ` {9 I z关键词: Windows? ? 消息? ? 消息机制? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? x! p% \5 p* a, ^/ {5 j. ^/ i/ s3 v/ J摘要:Windows编程和Dos编程,一个很大的区别就是,Windows编程是事件驱动,消息传递的。所以,要学好Windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的分析。 ! y, Z. y5 z, O1 ^ @( ` 什么是消息?, `9 @) ~ p, X* | ?: f! Y {% Y+ Z3 G4 h2 j2 x: [8 ^2 i+ ?! {3 S+ B$ _9 M: i( B8 R [+ E G/ I5 ]! Q 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。: s. D+ s7 g# k7 S3 ^6 n @2 ?- B8 b 2 z( Z# y2 K5 _0 ]0 Q4 |1 j7 y: r 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做MSG,MSG含有来自windows应用程序消息队列的消息信息,它在Windows中声明如下:# |- P x% y6 k+ v4 n! ^5 u. X, F3 y5 a/ \4 f5 ]4 t $ n5 x9 o4 ]$ F??l9 J9 G8 r+ x I1 xtypedef struct tagMsg# Z0 c, m4 C1 }??C??k1 s; s{4 j: Z4 \; F X7 r4 I$ XHWND hwnd; 接受该消息的窗口句柄9 _ W$ \( S I4 N, b- HUINT message; 消息常量标识符,也就是我们通常所说的消息号??e( S! i/ j??U N. `??RWPARAM wParam; 32位消息的特定附加信息,确切含义依赖于消息值% }- u6 D- }- W4 o, ?LPARAM lParam; 32位消息的特定附加信息,确切含义依赖于消息值* e) l q3 `: c$ J2 cDWORD time; 消息创建时的时间0 Y+ q$ z+ ~8 X( y% z) HPOINT pt; 消息创建时的鼠标/光标在屏幕坐标系中的位置??M* i9 Y% F1 L1 g# s4 k}MSG; G4 G! J2 |9 J7 O a7 `??` `9 P8 s) \0 \$ _( J* u??q n+ O0 J1 Y8 N+ }: C* p0 u. q 消息可以由系统或者应用程序产生。系统在发生输入事件时产生消息。举个例子, 当用户敲键, 移动鼠标或者单击控件。系统也产生消息以响应由应用程序带来的变化, 比如应用程序改变系统字体改变窗体大小。应用程序可以产生消息使窗体执行任务,或者与其他应用程序中的窗口通讯。 # L) X0 m% g1 b% L! i- W: D* I, @) x8 X+ p n! `, z! [ L8 z( d0 G4 F+ o1 U6 ~7 U; d) Q! a; w5 v* a 消息中有什么?/ R. l4 K; C0 c, e H# |2 @, C$ n( k o+ k3 W9 @( o4 ~ j+ T, z, H# Q- B s0 W5 x/ _ 我们给出了上面的注释,是不是会对消息结构有了一个比较清楚的认识?如果还没有,那么我们再试着给出下面的解释:5 O% N! W) F W: I$ _+ Q1 `6 L. q; k( r6 ~( Q8 g* b% |# ^ Z/ o) w+ N, d( h, e* [! Q. c hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。??O* ?7 ^ X T7 Y$ I9 g0 V% D b) ~; y# F/ R; x; H+ D( r2 J$ T8 B/ p0 |! j. o( C! H??Q/ b message用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是
您可能关注的文档
- windowsXP蓝屏代码大全..doc
- windowsxp系统下用grub引导veketlinux安装在硬盘上..doc
- WindowsXP远程桌面连接图解..doc
- WindowsXP自带备份工具..doc
- Windows_2003下搭建邮件服务器教程和使用_Winmail_Server_轻松架设邮件服务器..doc
- windows_Informix数据库恢复..docx
- Windows_2003系统安全完美设置脚本..doc
- Windows_Movie_Maker教程..doc
- windows_server_2003域迁移到server_2008全程图解..doc
- windows_server_2003至2008R2的迁移..docx
文档评论(0)