摘要:
Widget即将具备可扩展性,我们抽象了一个叫做“对象关系”的概念来辅助Widget扩展。我们将Widget的子控件布局作为一个可扩展点,并建立了一个“边缘式布局子控件”用于测试。 阅读全文
摘要:
控件体系基本雏形已经形成,首次能够直观的看到我们控件了。控件树、控件区域、控件绘制,这些就是这次的内容。 阅读全文
摘要:
既然有些实现对于用户来说是透明的,那么我们就将他们隐藏。这里提出了两种方案,我们进行了对比并选择了其中一种方案来执行,隐藏一些类之后我们便可以简化之前的生命周期依赖了——即通过暴露在外的对象来管理被隐藏的实现对象,这样减少了对象之间的交叉管理。 阅读全文
摘要:
我们最终要实现的是Widget,驱动、过滤器等等都是它的必要实现,但这和用户毫无关系。窗口、驱动、根控件之间有着一一对应的关系,那么他们的生命周期也是相互依赖的,看这里如何管理他们的生命周期。 阅读全文
摘要:
C++的一种序列化和反序列化方式,自动注册类型ID,自动通过类型ID查找到序列化类型并创建相应的对象。如果序列化对象属于一个继承体系,那么系统甚至可以不用关心反序列化出来的具体类型。 阅读全文
摘要:
thunk已经准备就绪,我们可以开始实现控件驱动了。驱动的职责很简单,负责关联容器窗口并将消息交由过滤器处理。在测试工程代码中,我们可以在调试的输出视图中看到容器窗口消息流入消息过滤器的情况。 阅读全文
摘要:
抽象控件需要由消息来驱动,那么我们就必须要截获其容器窗口的消息。这次的内容就是通过thunk来子类化容器窗口以截获其消息。 阅读全文
摘要:
整个系列是通过一步一步的分析和设计,最终实现一套windows窗口中抽象模拟控件的内核。对抽象模拟控件和概述及其消息驱动的设计便是这次的内容。 阅读全文
摘要:
ATL中编写COM的一些经验,这些经验都是通过代码实验所得,并非书籍理论。Apartment(套间)和不同类型的COM之间的关系,以及多线程同步问题。 阅读全文