易语言界面库的实现消息预处理 和窗口生存周期。
Posted bywayboy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了易语言界面库的实现消息预处理 和窗口生存周期。相关的知识,希望对你有一定的参考价值。
在窗口过程里面能处理所有的消息? 答案是 NO!
isdialogmessage 和 TranslateMessage 干啥吃的? 它把原始消息都给弄了一下。我拿不到原汁原味的东西。
如果说封装库。会有这个损失。那肯定是最大的损失!要让你的窗口类能够有机会处理最原始的消息。那必须在消息分发之前。也就是说 GetMessage 之后就直接处理。这才叫原汁原味。当然,对于非队列消息。也就只能能在窗口过程里处理。这完全足够了。
到现在为止。易语言的类里面有了两个最基本的虚方法。"消息过程" 和 “消息预处理”。这两个方法都是被系统调用。你要处理自己的。你要自己处理这些事? 继承覆盖。就可以了。
关于事件表。
每个类都有自己的 事件表。用哈希+链表来管理,虽然内存大了点。但速度整体还行。特别是写大型界面的时候。不会损失太多消息映射效率。
关于窗口生存周期、
又一次用到了以语言的虚方法和汇编了。在窗口过程的 WM_NCDESTROY 事件里面。调用对象的 “清理对象” 方法。这样在窗口关闭的时候。对象能有机会回收资源。 你继承的窗口类也是如此。覆盖这个方法。自己在里面回收就是了。要注意的是。你必须在你的类里面显式调用基类的同名方法。否则基类的资源会无法回收。
以上是关于易语言界面库的实现消息预处理 和窗口生存周期。的主要内容,如果未能解决你的问题,请参考以下文章