发送消息(SendMessage)常识普及

社区服务
高级搜索
猴岛论坛电脑百科发送消息(SendMessage)常识普及
发帖 回复
正序阅读 最近浏览的帖子最近浏览的版块
1个回复

发送消息(SendMessage)常识普及

楼层直达
泪闯天涯.

ZxID:17182221

等级: 大尉
本人无QQ号、谢绝论坛短信

举报 只看楼主 使用道具 楼主   发表于: 2011-12-17 0
— (20 ) -

感谢对易语言交流版块的支持。

以后请在此版多多发交流帖子哦

PS: 20 祝你愉快 (2011-12-20 18:41) —
现在易论坛很多人都喜欢在“发送消息”等操作时直接用数字,往往又不知道什么数字代表什么意思,也无从查起。
比如,有人说16是关闭窗口,那么请问17是什么?绝大部分的人不知道,即使你去问C++高手,也是绝大部分不知道的。
当初微软定义这些常量的时候,是为了让这些枯燥的数字更好记忆、阅读,可是现在很多易语言程序员却反其道行之,实在是不好的习惯。

我来说一下“发送消息---SendMessage”的基本知识。希望对大家有用。
首先,英文并不可怕,提倡中文编程是好事,完全排斥英文就不是好事了。在微软定义API、消息常量时,这些英文名称都是有含义的,而且大部分是生活中常用的英文单词。首先说一下SendMessage,这是Send(发送)+Message(消息)

再来说一下SendMessage的参数:
SendMessage(窗口句柄,消息,参数1,参数2)
消息一般为 WM_xxx相关的消息常量,比如WM_CLOSE,解释一下这里的WM=Window Message=窗口消息,CLOSE=关闭,这样一说就理解了吧?前两三个字母代表消息类型,后面的就是含义了,这样比你记数字不知道好多少。很多人用了那么久都不知道16是什么对不?可如果说Close的话,很多人都是知道的,毕竟这是常用英语单词,不说别的,家里的DVD等就有写类似单词。

后面的参数1、2,根据不同的消息,代表不同的含义,具体需要查MSDN,在MSDN里每个消息都有说明。

WM=Window(窗口)Message(消息)
WM_ACTIVATE=Window Message Activate(激活)
WM_COPY    =Window Message Copy(复制)
WM_CLOSE   =Window Message Close(关闭)

理解了之后,其实“发送消息”是很容易通过自己查询手册来实现某些功能的。Windows就是通过消息机制来控制窗口的,多查一下这些消息常量,很多常用的窗口操作都可以实现。
在此,我建议大家平常多用消息常量,少用数字,因为数字实在太难读了,根本没法单独从数字读懂意思。
另外,在易语言里使用这些常量需要自己手工声明,可能有的人嫌麻烦就直接填写了数字,其实自动声明常量的工具有很多,善用工具会让你事半功倍。比如: 古木常量查询、windows消息查询器易语言版 、易语言API助手、彗星小助手

参考:常用Windows消息、常量命名参考
补充:MSDN 的全称是 Microsoft Developer Network。一般我们平常所说的MSDN是指MSDN Library,程序员必备手册,涵盖了微软全套可开发产品线的技术开发文档和科技文献(部分包括源代码)。
本人无QQ号、谢绝论坛短信
key2009

ZxID:17243034

等级: 新兵
举报 只看该作者 沙发   发表于: 2011-12-19 0
学习了~
« 返回列表
发帖 回复