Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14523660
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:28:16

下载本文示例代码
天极开发精彩专题(VC类) ·Visual C 界面常用控件实例技巧 ·Visual C 数据库编程快速入门 ·防止Visual C 应用程序缓冲区溢出 ·使用MFC开发ActiveX控件 ·Visual C 线程同步技术剖析 ·Visual C .NET编程基础讲座 ·Visual C 图像处理编程讲座 ·Visual C 下OpenGL开发框架与应用  介绍   在本文中我将介绍ATL对在对话框中使用ActiveX控件的支持,由于ActiveX控件就是ATL的专业,所以WTL没有添加其他的辅助类。不过,在ATL中使用ActiveX控件与在MFC中有很大的不同,所以需要重点介绍。我将介绍如何包容一个控件并处理控件的事件,开发ATL应用程序相对于MFC的类向导来说有点不方便。在WTL程序中自然可以使用ATL对包容ActiveX控件的支持。  例子工程演示如何使用IE的浏览器控件,我选择浏览器控件有两个好处:  每台计算机都有这个控件,并且它有很多方法和事件,是个用来做演示的好例子。   我当然无法与那些花了大量时间编写基于IE浏览器控件的定制浏览器的人相比,不过,当你读完本篇文章之后,你就知道如何开始编写自己定制的浏览器!  从使用向导开始创建工程   WTL的向导可以创建一个支持包容ActiveX控件的程序,我将开始一个名为IEHoster的新工程。我们像上一章一样使用无模式对话框,只是这次要选上支持ActiveX控件包容(Enable ActiveX Control Hosting),如下图:   选上这个check box将使我们的对话框从CAxDialogImpl派生,这样就可以包容ActiveX控件。在向导的第二页还有一个名为包容ActiveX控件的check box,但是选择这个好像对最后的结果没有影响,所以在第一页就可以点击“Finish”结束向导。  向导生成的代码   在这一节我将介绍一些以前没有见过的新代码(由向导生成的),下一节介绍ActiveX包容类的细节。  首先要看的文件是stdafx.h,它包含了这些文件: #include #include extern CAppModule _Module;#include #include #include #include // .. other WTL headers ...  atlcom.h和atlhost.h是很重要的两个,它们含有一些COM相关类的定义(比如智能指针CComPtr),还有可以包容控件的窗口类。  接下来看看maindlg.h中声明的CMainDlg类: class CMainDlg : public CAxDialogImpl,public CUpdateUI,public CMessageFilter, public CIdleHandler  CMainDlg现在是从CAxDialogImpl类派生的,这是使对话框支持包容ActiveX控件的第一步。  最后,看看WinMain()中新加的一行代码: int WINAPI _tWinMain(...){ //... _Module.Init(NULL, hInstance); AtlAxWinInit(); int nRet = Run(lpstrCmdLine, nCmdShow); _Module.Term(); return nRet;}   AtlAxWinInit()注册了一个类名未AtlAxWin的窗口类,ATL用它创建ActiveX控件的包容窗口。  使用资源编辑器添加控件   和MFC的程序一样,ATL也可以使用资源编辑器向对话框添加控件。首先,在对话框编辑器上点击鼠标右键,在弹出的菜单中选择“Insert ActiveX control”:   VC将系统安装的控件显示在一个列表中,滚动列表选择“Microsoft Web Browser”,单击Insert按钮将控件加入到对话框中。查看控件的属性,将ID设为IDC_IE。对话框中的控件显示应该是这个样子的:   如果现在编译运行程序,你会看到对话框中的浏览器控件,它将显示一个空白页,因为我们还没有告诉它到哪里去。 在下一节,我将介绍与创建和包容ActiveX控件有关的ATL类,同时我们也会明白这些类是如何与浏览器交换信息的。共6页。 1 2 3 4 5 6 : 天极开发精彩专题(VC类) ·Visual C 界面常用控件实例技巧 ·Visual C 数据库编程快速入门 ·防止Visual C 应用程序缓冲区溢出 ·使用MFC开发ActiveX控件 ·Visual C 线程同步技术剖析 ·Visual C .NET编程基础讲座 ·Visual C 图像处理编程讲座 ·Visual C 下OpenGL开发框架与应用  介绍   在本文中我将介绍ATL对在对话框中使用ActiveX控件的支持,由于ActiveX控件就是ATL的专业,所以WTL没有添加其他的辅助类。不过,在ATL中使用ActiveX控件与在MFC中有很大的不同,所以需要重点介绍。我将介绍如何包容一个控件并处理控件的事件,开发ATL应用程序相对于MFC的类向导来说有点不方便。在WTL程序中自然可以使用ATL对包容ActiveX控件的支持。  例子工程演示如何使用IE的浏览器控件,我选择浏览器控件有两个好处:  每台计算机都有这个控件,并且它有很多方法和事件,是个用来做演示的好例子。   我当然无法与那些花了大量时间编写基于IE浏览器控件的定制浏览器的人相比,不过,当你读完本篇文章之后,你就知道如何开始编写自己定制的浏览器!  从使用向导开始创建工程   WTL的向导可以创建一个支持包容ActiveX控件的程序,我将开始一个名为IEHoster的新工程。我们像上一章一样使用无模式对话框,只是这次要选上支持ActiveX控件包容(Enable ActiveX Control Hosting),如下图:   选上这个check box将使我们的对话框从CAxDialogImpl派生,这样就可以包容ActiveX控件。在向导的第二页还有一个名为包容ActiveX控件的check box,但是选择这个好像对最后的结果没有影响,所以在第一页就可以点击“Finish”结束向导。  向导生成的代码   在这一节我将介绍一些以前没有见过的新代码(由向导生成的),下一节介绍ActiveX包容类的细节。  首先要看的文件是stdafx.h,它包含了这些文件: #include #include extern CAppModule _Module;#include #include #include #include // .. other WTL headers ...  atlcom.h和atlhost.h是很重要的两个,它们含有一些COM相关类的定义(比如智能指针CComPtr),还有可以包容控件的窗口类。  接下来看看maindlg.h中声明的CMainDlg类: class CMainDlg : public CAxDialogImpl,public CUpdateUI,public CMessageFilter, public CIdleHandler  CMainDlg现在是从CAxDialogImpl类派生的,这是使对话框支持包容ActiveX控件的第一步。  最后,看看WinMain()中新加的一行代码: int WINAPI _tWinMain(...){ //... _Module.Init(NULL, hInstance); AtlAxWinInit(); int nRet = Run(lpstrCmdLine, nCmdShow); _Module.Term(); return nRet;}   AtlAxWinInit()注册了一个类名未AtlAxWin的窗口类,ATL用它创建ActiveX控件的包容窗口。  使用资源编辑器添加控件   和MFC的程序一样,ATL也可以使用资源编辑器向对话框添加控件。首先,在对话框编辑器上点击鼠标右键,在弹出的菜单中选择“Insert ActiveX control”:   VC将系统安装的控件显示在一个列表中,滚动列表选择“Microsoft Web Browser”,单击Insert按钮将控件加入到对话框中。查看控件的属性,将ID设为IDC_IE。对话框中的控件显示应该是这个样子的:   如果现在编译运行程序,你会看到对话框中的浏览器控件,它将显示一个空白页,因为我们还没有告诉它到哪里去。 在下一节,我将介绍与创建和包容ActiveX控件有关的ATL类,同时我们也会明白这些类是如何与浏览器交换信息的。共6页。 1 2 3 4 5 6 : 下载本文示例代码


MFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveXMFC程序员的WTL指南之包容ActiveX
阅读(101) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~