当前位置:首页 > 科技  > 软件

一篇文章学会用户自定义消息及层次划分

来源: 责编: 时间:2023-11-06 08:53:49 219观看
导读有些人对术语 WM_USER 表示消息范围基的名称有不同的意见,因为 WM_USER 是由窗口类的实现者来定义的。他们抱怨的是,用户不能使用它们,因为它们属于窗口类定义的一部分。但是,问题是,”这里的用户是谁?” 换句话说,当我们说

有些人对术语 WM_USER 表示消息范围基的名称有不同的意见,因为 WM_USER 是由窗口类的实现者来定义的。他们抱怨的是,用户不能使用它们,因为它们属于窗口类定义的一部分。uvj28资讯网——每日最新资讯28at.com

但是,问题是,”这里的用户是谁?” 换句话说,当我们说”用户自定义”这个词的时候,做自定义操作的这个用户到底是指谁?uvj28资讯网——每日最新资讯28at.com

在上面这个问题中,总共有四个不同的组件涉及其中,每个组件都有它自己的消息范围。uvj28资讯网——每日最新资讯28at.com

>窗口管理器处理 WM_USER 之下的消息。uvj28资讯网——每日最新资讯28at.com

> 窗口类的实现者处理 WM_USER 到 WM_APP – 1 之间的消息。uvj28资讯网——每日最新资讯28at.com

> 应用程序(具体来说,就是创建窗口的代码)处理 WM_APP 到 MAXINTATOM – 1 之间的消息。uvj28资讯网——每日最新资讯28at.com

> 所有其他组件通过 RegisterWindowMessage 处理 MAXINTATOM 到 MAXWORD 之间的消息。uvj28资讯网——每日最新资讯28at.com

用户是谁?这取决于你是站在哪个角度来如何理解这个问题的。uvj28资讯网——每日最新资讯28at.com

从窗口管理器的角度来看,窗口类的实现者是用户,因为窗口类的代码会调用窗口管理器。uvj28资讯网——每日最新资讯28at.com

从窗口类的实现者的角度来看,应用程序是用户,因为它调用了窗口类。uvj28资讯网——每日最新资讯28at.com

那如果从应用程序的角度来看,所有的外部代码就是用户了,因为外部代码会调用应用程序。uvj28资讯网——每日最新资讯28at.com

相反,你可以“向上”查找列表,并观察到从每个组件的角度来看,属于其上方组件的消息是“保留”的。uvj28资讯网——每日最新资讯28at.com

从类实现者的角度来看,窗口管理器消息是保留的。从应用程序的角度来看,类实现者的消息是保留的。从所有外部程序的角度来看,应用程序的消息是保留的。让我们来看看下图,帮助理解。uvj28资讯网——每日最新资讯28at.com

uvj28资讯网——每日最新资讯28at.com

每个框将属于其内框的消息视为保留;相反,每个内框将下一个外框视为其“用户”。uvj28资讯网——每日最新资讯28at.com

由于 winuser.h 头文件是由窗口管理器团队编写的,因此他们从窗口管理器的角度看世界也就不足为奇了。因此,窗口管理器外部的所有内容都是“用户定义的”,窗口管理器内部的所有内容都是“保留的”。uvj28资讯网——每日最新资讯28at.com

当然,如果从类实现者的角度来看,那么“保留”和“用户”这两个词的上下文就会发生变化。例如,你可以在对话框常量 DWLP_USER 中看到这一点,该常量是对话框的“用户”可以使用的窗口字节的索引;即,通过应用程序的对话过程。uvj28资讯网——每日最新资讯28at.com

总结

简化一个复杂的问题,可以通过划分层次的思路来将其分成一个一个的小问题。人生也是如此。uvj28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-17171-0.html一篇文章学会用户自定义消息及层次划分

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 一次单据图片处理的优化实践

下一篇: AutoCAD 产品设计:文字样式的字高为 0 的逻辑

标签:
  • 热门焦点
Top