在编程的世界里,封装和消息处理是构建用户界面时不可或缺的部分。本文将介绍一个不依赖WTL/MFC的库,它旨在简化Windows API的使用,并提供一个易于理解的封装方式。
最初,认为创建一个不依赖WTL/MFC的库的想法是荒谬的。但在编写了一些代码之后,发现这个想法非常有趣。就像看到的,甚至不记得写了多少代码。这个库并不是MFC、MTL等的替代品。将其视为替代品是荒谬的。它只是一个可能帮助理解封装的好奇心。尽量让代码简单到任何人都能理解。尽管如此,不能保证代码写得好。像往常一样,它可能是一个糟糕或好的编程示例。
首先,要感谢花时间检查代码或尝试一些示例。如果对项目感兴趣,可以给发新的类或代码更正。这一次,除了在CodeProject上发布的一个数组控件类之外,整个代码都是责任。这给了回复消息的机会。
在开发过程中,没有使用正式的架构。只需要考虑一个基础方案,然后围绕它创建类。正如在查看代码时看到的,对MFC有很大的依赖。这就是为什么一些类有相似的名字。设计了一个类似的方案,至少在外观上是基于宏的。
CWin
是基础库类。它的功能是围绕Windows API基础和WndProc
函数。CWin
继承了CMsg
消息结构;参见文件CMacrodefine.h
。它包含一个NewMsgProc
虚拟函数,稍后由调用消息处理函数的宏替换。库按逻辑组织成一组基类。这些类围绕Windows基本控件和其他高级组件的扩展,名称为swcext
。不幸的是,不能做详细的描述,所以将提供一个快速参考到基础文件:
CApp.h
: 类应用程序包装器,其功能是启动代码执行。CCommonCtrl.h
: 公共Windows控件包装器,工具箱和状态栏装饰。CDialogControl.h
: 公共对话框包装器和基础对话框类。CFrame.h
: 基础框架包装器,用于管理SDI和MDI窗口,停靠栏和钩子菜单类。CGdi.h
: GDI函数包装器和窗口装饰类。CMenuSpawn.h
: 菜单扩展包装器,支持图标和现代外观。以下是这个库的一些主要特性:
它是免费的,所以可以随意使用。不过,如果在开发中使用了它,希望能给一些认可。正如看到的,这是一个耗费了很多时间的工作,从零开始制作一些东西并不容易。欢迎提出建议。
试图消除所有的资源释放和内存错误,但就像所有软件都自带错误一样,请告诉如果发现了其他的。以下是一些已知问题和希望在下一个版本中可用的附加组件的列表: