WEB开发网
开发学院软件开发VC 老调重提,面向对象技术在SDK中的应用 阅读

老调重提,面向对象技术在SDK中的应用

 2010-07-20 20:46:17 来源:WEB开发网   
核心提示:整个类只有一个成员m_hwnd,和一个回调函数WindowProc,这个类就是作为我们所有的窗口的基类,所有窗口的消息都在这里得到处理,每一个消息对应一个虚函数,当派生类的窗口类需要处理特定的消息时,只要重写虚函数即可!比如,需要处理WM_PAINT消息时,只要派生类中重写OnPaint,即可以处理该消息!对于一个消息

整个类只有一个成员m_hwnd,和一个回调函数WindowProc,这个类就是作为我们所有的窗口的基类,所有窗口的消息都在这里得到处理,每一个消息对应一个虚函数,当派生类的窗口类需要处理特定的消息时,只要重写虚函数即可!比如,需要处理WM_PAINT消息时,只要派生类中重写OnPaint,即可以处理该消息!

对于一个消息,一个对应的虚函数,听起来很合理,但是在实际中,这是一个很不合理的设计,看过MFC设计的朋友,都应该知道MFC不是这样设计的,它使用的是消息链表!因为虚函数是占空间的,对于每一个类,它需要维护一个虚函数表,当基类存在不需要处理的消息时,它还要维护这样的消息对应的虚函数,是很浪费空间的,所以在实际的开发中,这样的设计是很少采用的,但是我在这里是演示一种对SDK封装的方法而采用这种方式!(只是封装了几个消息,演示目的)

封装后,创建一个窗口只需要几行代码!!

Tags:老调 重提 面向

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接