`
tempsitegoogle
  • 浏览: 862209 次
文章分类
社区版块
存档分类
最新评论

ATL窗口实现的学习

 
阅读更多

作者:朱金灿

来源:http://blog.csdn.net/clever101

昨晚看了《MFC程序员的WTL教程》的第一章ATL的窗口实现,有以下感觉:

1. 感觉ATL的窗口实现比MFC轻便多了。

2. ATL窗口类的扩展机制比MFC的窗口类扩展机制要好。MFC的窗口类扩展采用的传统的C++的虚函数的机制(除开消息分发部分)。ATL采用类模板的机制,在保持面向对象特征的同时具有更高的运行效率。书中的那句例程:

CHAIN_MSG_MAP(CPaintBkgndBase)

该句代码的意思是任何到达 CMyWindow 映射而没有处理的消息将被传递到CPaintBkgnd的映射中。个人感觉这样写并不十分恰当,我觉得更好的写法是:

MESSAGE_HANDLER(WM_ERASEBKGND,CPaintBkgndBase::OnEraseBkgnd)

这样更能体现ATL类的扩展特征。

3.ATL比起MFC的稍微不便的地方是需要手动添加消息处理宏,以及 消息处理函数中需要分清WPARAM wParam和LPARAM lParam两个参数的意义。不过我觉得对于具有MFC基础和Win API基础的程序员而言,这一点不会不算什么困难。

其它的不谈了,具体看代码吧(在Win XP + sp3, VS 2005+ sp1,WTL 8.0下编译)。例程下载


分享到:
评论

相关推荐

    C++中ATL与WTL学习

    • 定义窗口实现 o 填充消息映射 • 高级消息映射链和嵌入(Mix-in)类 • ATL EXE 的结构 o VC 6 的情形 o VC 7 的情形 第二部分 - WTL 中的 GUI 基础类 • 下载示例代码 - 119 K 内容 • 第二部分介绍 • WTL ...

    深入解析ATL(第2版).pdf

     ·使用ATL窗口类和控件建立独立的应用程序和UI组件。  ·使用ATL Servet开发可以运行在微软IIS上的Web应用程序。 虽然.NET系统从1998年才开始其发展进程。但它已经使很多开发人员的编程发生了革命性的变化,并在...

    MFC程序员的WTL指南

    您必须加一个宏映射来实现DoDataExchange,然后加入调用它的代码.现在WTL也有GDI类了.然而,HDC的封装类就像CWindow一样,只进行了很简单的封装 - 它几乎没有加入任何新的功能.不过,在WTL,你可以得到播放meta文件和...

    应用程序支持扩展之鼠标手势

    由于实现方式、及部分资源参考两者,望别有版权之事,只要研究学习而已。 手势时,创建一窗口,并将内容靠过来,响应此窗口的消息。 框架实现 撤销、前进、关闭、退出等命令。 L 左 R右 D下 U 上 DL 全部...

    vc++ 应用源码包_1

    ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 autoplaysnd mp3 播放器源码 重载了自带的控件进行播放 aviplayer avi播放器源码 引用了atl控件播放 beautifulskin 源码 演示了...

    vc++ 应用源码包_2

    ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 autoplaysnd mp3 播放器源码 重载了自带的控件进行播放 aviplayer avi播放器源码 引用了atl控件播放 beautifulskin 源码 演示了...

    vc++ 应用源码包_6

    ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 autoplaysnd mp3 播放器源码 重载了自带的控件进行播放 aviplayer avi播放器源码 引用了atl控件播放 beautifulskin 源码 演示了...

    vc++ 应用源码包_5

    ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 autoplaysnd mp3 播放器源码 重载了自带的控件进行播放 aviplayer avi播放器源码 引用了atl控件播放 beautifulskin 源码 演示了...

    vc++ 应用源码包_3

    ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 autoplaysnd mp3 播放器源码 重载了自带的控件进行播放 aviplayer avi播放器源码 引用了atl控件播放 beautifulskin 源码 演示了...

    vc++ 开发实例源码包

    ATL实现的CDHtmlDialog模板类v1.03 使用了六个类五个模块类演示了atl的调用方法 class CDHtmlSinkHandler; // Events Sink Base class CDHtmlEventSink; // IHTMLDocument2 Events Sink // IDispatch class ...

    Visual C++技术内幕(第四版)目录

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual C++技术内幕(第四版)配套光盘

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual.C#2010从入门到精通

    学习以c#的必备书 本书介绍了如何使用Visual C++ 6.0编写Windows应用程序。全书内容全面、结构清晰、由浅入深、注重实用,并结合了大量的实例,以方便读者理解。本书既包含菜单、鼠标、键盘等基本操作,又包含图形...

    Visual C++技术内幕(第四版).part4.rar

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual C++技术内幕(第四版).part1.rar

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual C++技术内幕(第四版).part2.rar

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual C++技术内幕(第四版).part3.rar

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual C++技术内幕(第四版).part5.rar

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    Visual C++技术内幕(第四版).part6.rar

    初期的MFC只实现了文档-视结构以及相关的Windows编程接口,那时候MFC代码还是比较简捷的,但是随着Windows窗口元素的复杂化,以及OLE和多线程等特性的加入,MFC已经非常膨大、非常累赘了,这时再要根据MFC源代码来...

    C++调用Matlab函数求特征值

    最近需要用到C++和Matlab的混编,记录一下学习过程。 要实现的是调用Matlab函数,求矩阵前k个最小的特征值及其特征向量。 //C++ #include engine.h //使用Matlab引擎需要包含的头文件 #include using namespace ...

Global site tag (gtag.js) - Google Analytics