VS2013编写嵌入网页的ATL控件1-新建和配置

来源:互联网 发布:怎么给淘宝刷好评赚钱 编辑:程序博客网 时间:2024/06/10 08:57

前言、废话和源码下载位置

最近做一个项目需要网页打开的ATL控件作为依托,显示三维内容。网页对控件可以调用函数,并且传送信息。控件也可以给网页发送消息。
我不懂ATL控件,完全初学,弄了很久。写个blog记录一下。
源码工程下载:
AtlTest1501_V1 打包链接

一、工作环境

  • Windows7 64位 旗舰版
  • VS2013
  • IE 10(有的IE11不可用还需要修改)

二、建立ATL控件

  1. “以管理员身份运行”VS2013。由于ATL控件需要注册,VS向导生成的项目在编译后,自动注册,所以需要用管理员身份,否则编译会失败,提示注册问题。
  2. 通过VS向导新建ATL项目。项目名称定为AtlTest1501.选项如下图:
    这里写图片描述
    点击完成。
  3. 在项目中添加ATL控件。
    右键添加类,选择ATL控件。填写类名称为“AtlControl”。
    这里写图片描述
    选择支持“连接点”。
    这里写图片描述
    支持“IObjectSafety”接口。
    这里写图片描述
    添加控件基于: “Stactic”。
    这里写图片描述
    支持 “Auto Size”。
    这里写图片描述
    点击完成,添加好了ATL控件。
  4. 配置调试,运行看看。
    项目属性对话框“调试”中:
    • “命令”输入:C:\Program Files\Internet Explorer\iexplore.exe
    • “命令参数”输入:$(ProjectDir)AtlControl.htm
    • “工作目录”输入::(SolutionDir)(Configuration)
      这里写图片描述
      点击确定,编译运行。
      在IE网页中,“允许阻止的内容”,看到一个灰白色的ATL控件。
  5. 跟踪调试。
    • 在CAtlControl类的OnCreate函数中打断点。
    • 调试的时候,在调试菜单中,选择“附加到进程”,刷新IE网页,点击“允许阻止的内容”。就可以跟踪调试了。
    • 注意:我是64位的机器,由于ATL只有32位的。需要确认注册表信息是否兼容32位的IE。展开至 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main,在右侧列表中找到 TabProcGrowth 设定为非 0,如果这个数值型态是 DWORD,那可以设定为 1,如果型态是字串,可以设定为 medium。如果没有这个项,就新建一个。百度一下有很多说这个的。原来在IE7的时候,还可以不用附加到进程直接就可以调试运行,在IE10中没有找到。刚刚查了一个《如何在Win7/Win8中打开32位版IE10和IE11》

试一下,可以在网页中控件灰白色的ATL控件,且断点可以打断。本文内容就完成了。
下一篇写,网页调用ATL控件,ATL控件向网页返回事件。

参考文章

最近查询过的文章很多。都不太记得了。这里记录了一些当时认为有用的。

ATL建立ActiveX控件样例(入门级)

  • 配置项目属性:用于在IE中调试ATL控件
  • 给控件创建窗口,在OnDraw()函数中显示,在OnCreate()及OnSize()函数中创建和显示的代码。
  • 链接如下:
    http://blog.csdn.net/shangzhi6321/article/details/5091459

其他:给控件加上安全描述 可以去掉IE每次“允许显示内容”的对话框询问。


http://mochou123456.blog.163.com/blog/static/46057646201152111542393/

DLL+ ActiveX控件+WEB页面调用例子

  • 这个解决了我那个的函数调用的毛病。需要添加一些东西。
  • 链接如下
    http://blog.chinaunix.net/uid-10021887-id-2971827.html

把程序嵌入网页之ATL编写ActiveX[标准窗口+接受参数]

  • 用于VS2013;
  • 讲解清晰入门用,我这个试用,都怀疑是物超的博客,看了半天不是。
  • 很清晰有时间看看,实现一下。
  • 第一行是我传输函数不能的关键。
  • 链接如下:
    http://blog.csdn.net/sidyhe/article/details/12048553
1 0