老调重提,面向对象技术在SDK中的应用
2010-07-20 20:46:17 来源:WEB开发网核心提示:整个类只有一个成员m_hwnd,和一个回调函数WindowProc,这个类就是作为我们所有的窗口的基类,所有窗口的消息都在这里得到处理,每一个消息对应一个虚函数,当派生类的窗口类需要处理特定的消息时,只要重写虚函数即可!比如,需要处理WM_PAINT消息时,只要派生类中重写OnPaint,即可以处理该消息!对于一个消息
整个类只有一个成员m_hwnd,和一个回调函数WindowProc,这个类就是作为我们所有的窗口的基类,所有窗口的消息都在这里得到处理,每一个消息对应一个虚函数,当派生类的窗口类需要处理特定的消息时,只要重写虚函数即可!比如,需要处理WM_PAINT消息时,只要派生类中重写OnPaint,即可以处理该消息!
对于一个消息,一个对应的虚函数,听起来很合理,但是在实际中,这是一个很不合理的设计,看过MFC设计的朋友,都应该知道MFC不是这样设计的,它使用的是消息链表!因为虚函数是占空间的,对于每一个类,它需要维护一个虚函数表,当基类存在不需要处理的消息时,它还要维护这样的消息对应的虚函数,是很浪费空间的,所以在实际的开发中,这样的设计是很少采用的,但是我在这里是演示一种对SDK封装的方法而采用这种方式!(只是封装了几个消息,演示目的)
封装后,创建一个窗口只需要几行代码!!
- ››面向对象的JS-私有成员变量实现方式
- ››面向对象的JavaScript (一、对象基础,使用函数来...
- ››老调重提,面向对象技术在SDK中的应用
- ››面向对象数据库 db4o 之旅,第 4 部分: 使用 dRS
- ››面向 Java Web 应用程序的 OpenID,第 2 部分: 为...
- ››面向 Java 开发人员的 db4o 指南: 简介和概览
- ››面向 Java 开发人员的 db4o 指南: 查询,更新和一...
- ››面向 Java 开发人员的 db4o 指南: db4o 中的数据库...
- ››面向 Java 开发人员的 db4o 指南: 超越简单对象
- ››面向 Java 开发人员的 db4o 指南: 结构化对象和集...
- ››面向 Java 开发人员的 db4o 指南: 事务、分布和安...
- ››面向 Java Web 应用程序的 OpenID,第 1 部分:在...
更多精彩
赞助商链接