工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
MFC程序员的WTL指南之包容ActiveX
[文章信息]
作者:LITHE
时间:2005-02-22
出处:BLOG
责任编辑:方舟
[文章导读]
在本文中我将介绍ATL对在对话框中使用ActiveX控件的支持
advertisement
热点推荐
· 系统安全卫士SPY Destroy
· 绕过身份验证加对方为好友
· 2月21日软件精选 QQ被盗原因及防范
· Visual Basic上机考试综合应用题选讲
· 所有Win XP系统将自动升级至SP2
[正文]

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 <atlbase.h>
#include <atlapp.h>

extern CAppModule _Module;

#include <atlcom.h>
#include <atlhost.h>
#include <atlwin.h>
#include <atlctl.h>
// .. other WTL headers ...

  atlcom.h和atlhost.h是很重要的两个,它们含有一些COM相关类的定义(比如智能指针CComPtr),还有可以包容控件的窗口类。

  接下来看看maindlg.h中声明的CMainDlg类:

class CMainDlg : public CAxDialogImpl<CMainDlg>,
public CUpdateUI<CMainDlg>,
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类,同时我们也会明白这些类是如何与浏览器交换信息的。


1 2 3 4 5 6  下一页

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 用递归算法解决VC中CEdit的一个Bug
  • 木马中如何编程实现远程关机(VC版)
  • VC下利用OpenGL构造自由型曲线曲面
  • MFC程序员的WTL指南之高级界面类
  • Visual C++ MFC 中常用宏的含义
  • 夏普第8代液晶生产动工 下半年将变革策略
  • 手机闲置造成资源浪费 专家呼吁早出台法规
  • IT卖场网站竞争加速 在残酷现实中沉默前行
  • 笔记本市场硝烟再起 家用笔记本年内翻番
  • 信息化时代:谁来保护我们的个人信息?
  • 维权法宝:别让信息化的证据“稍纵即逝”
  • 中国软件三痛之人才篇:外包是“重灾区”
  • 关于我国电子政务建设信息共享策略的反省
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索