- 浏览: 1016335 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
VC中使用ATL编写控件
作者:邵盛松 2010年10月29日
源码下载地址:http://download.csdn.net/source/2793074
在VC2005中创建控件,可以使用MFC创建控件,也可以使用ATL创建控件
一 ATL项目的创建
在VC2005中新建一个项目,项目类型选择ATL,模板选择ATL项目。项目名称命名为ActiveXDemo。
ATL项目向导的概述中直接下一步
ATL项目的应用程序设置如下
服务器类选选择动态链接库(DLL)
附加选项勾选允许合并代理/存根(stub)代码
二 添加ATL控件
步骤
在解决方案资源管理或类视图中选中项目右键 添加->类
在ATL模板中添加ATL控件
1 简称
简称为ATLCtrl其他各项向导会自动添加
2 选项
控件类型为标准控件,线程模型为单元,接口为双重,聚合为是支持勾选连接点
3 接口
默认就可以
4 外观
添加的控件基于none,其他各项默认
5 常用属性
默认,直接完成
三 调试方法
项目文件夹ATLCtrl.htm可以用来测试控件
调试方法
配置下调试环境
命令参数填写ATLCtrl.htm的路径。
调试时,程序程序自动打开了IE。
如果IE出现了为了有利于保护安全性,IE已限制此网页运行可以访问计算机的脚本或 ActiveX 控件。请单击这里获取选项。
那就允许阻止的内容
结果出现了ATL8.0:ATLCtrl
这个控件的基本结构就完成了。
四 添加窗口
选择项目右键添加->类,添加ATL对话框
在ATL对话框向导的简称中输入ATLWnd
在类视图中选中CATLCtrl
在ATLCtrl中添加一个类型为CATLWnd * m_pWnd 的成员变量
在ATL中VC并没有像MFC那样自动添加头文件,需要手动添加
#include "ATLWnd.h"
然后添加一个WM_CREATE消息
VC自动创建了OnCreate函数,并创建窗口如下
LRESULT CATLCtrl ::OnCreate (UINT /*uMsg*/ , WPARAM /*wParam*/ , LPARAM /*lParam*/ , BOOL & /*bHandled*/ )
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
RECT rc = {0};
this ->GetWindowRect (&rc );
m_pWnd = new CATLWnd ();
if ( !::IsWindow (m_pWnd ->m_hWnd ) )
{
m_pWnd ->Create (this ->m_hWnd , rc );
}
return 0;
}
在资源视图中将ID为IDD_ATLWND的对话框属性设置如下
Style设置为Child
Visible设置为True
在CATLCtrl的构造函数中添加m_bWindowOnly = true ;
代码如下
CATLCtrl ()
: m_pWnd (NULL )
{
m_bWindowOnly = true ;
}
调试之后 ,窗口就显示了出来。
五 ATL 安全接口的实现
在VC2005实现安全接口很容易 ,只要将控件类CATLCtrl继承 IObjectSafetyImpl 就可以。
具体实现
在ATLCtrl .h文件中找到如下代码 将 #ifdef和#endif 注释就完成了
#ifdef _WIN32_WCE // 要在Windows CE 上正确加载该控件,要求IObjectSafety
public IObjectSafetyImpl,
#endif
#ifdef _WIN32_WCE // 要在Windows CE 上正确加载该控件,要求IObjectSafety
COM_INTERFACE_ENTRY_IID(IID_IObjectSafety, IObjectSafety)
#endif
本文在VC2005+ ATL8.0下调试通过
发表评论
-
NotePad++ - 安装和配置C/C++开发插件
2011-11-15 23:00 1846NotePad++ - 安装和配置C/C+ ... -
在Windows环境下MongoDB搭建和简单操作【转】
2011-10-21 12:37 1000一,安装mongoDB 1,解 ... -
Mongodb在Windows下安装及配置【转】
2011-10-21 12:35 5911.下载mongodb的windows版本,有32位和64位版 ... -
一篇介绍VC开发OCX的文章[转]
2011-10-20 17:57 1931转自“http://www.cnblogs.com/genga ... -
使你的ActiveX控件执行时不弹出安全性提示 (转载)
2011-10-20 17:56 1214使你的ActiveX控件执行时不弹出安全性提示 2010-0 ... -
VC++ 的MFC 和ATL 及COM 是什么?
2011-10-20 01:12 1025一、什么是MFC 微软基础类(Micro ... -
使用ATL编写一个简单的COM服务器【转】
2011-10-20 01:10 902下载例子代码 本文的对象是COM编程 ... -
使用VC++6.0制作ASP服务器控件简介[转]
2011-10-20 01:10 707用ASP写网页的程序 员,一定对VBSript语句“Set ... -
基于CentOS 5.4搭建nginx+php+spawn-fcgi+mysql
2011-09-01 13:49 1575基于CentOS 5.4搭建nginx+php+sp ... -
解决mrtg的Use of uninitialized value in hash element at /usr/bin/indexmaker line 35
2011-09-01 13:41 2344mrtg的安装过程这里就不再阐述,随便搜索一下。使用ind ... -
用MRTG检测Linux网络性能
2011-09-01 10:49 918随着Linux应用的日益广泛,有大量的网络服务器使用Linux ... -
Linux安装配置maven3.0以及搭建nexus私服
2011-08-30 23:45 1672一、软件准备 1、apache-maven-3.0-b ... -
GraphicsMagick介绍及安装
2011-08-30 23:16 1567作者:Cocowool 来源:博客园 发布时 ... -
Makefile
2011-08-30 22:10 903CC = g++ CFLAG = -Wall -g -w ... -
高位字节优先 低位字节优先
2011-08-24 17:30 1219自第一台计算机诞生, ... -
C++方式的文件操作
2011-08-24 16:05 1852本文主要讨论C++标准I/O库,主要内容为控制台输入输出流 ... -
【JAVA实用工具】JNA-通过它调用C++的方法,比JNI方便很多访问网站需要代理,所以把它COPY出来备忘
2011-08-24 00:33 3218How To Get Started Using JN ... -
Jni中C++和Java的参数传递
2011-08-24 00:04 5166如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对 ... -
aaaaa
2011-08-24 00:04 1037如何使用JNI的一些基本方法和过程在网上多如牛毛,如果你对 ... -
jbytearray转c++byte数组
2011-08-24 00:02 1407jbyte * arrayBody = env->G ...
相关推荐
总结,使用VC2005和ATL编写ActiveX控件是一种高效的方式,它能够快速地创建具有复杂功能的Windows控件。ATL的模板和宏大大简化了COM编程,使得开发者能够专注于业务逻辑而不是底层细节。通过上述步骤,你可以构建、...
3. **实现接口**:在实现文件中编写接口的代码,处理控件的逻辑。 4. **创建资源**:为控件添加必要的资源,如图标、字符串等。 5. **注册控件**:编译后,使用`regsvr32.exe`或工程提供的注册函数将控件注册到系统...
VC 6.0使用ATL方法编写实现ActiveX控件,编译最终生成Polygon.dll文件,没有窗口可查看。这个源码是来自国外,源代码含注释,代码规整,在ATL方法编写DLL控件方面,还是很有参考价值的。
在描述中提到的"VC界面编写中表格控件源代码"资源,提供了四种不同的表格控件实现,这对于开发者来说是宝贵的参考资料,可以帮助他们深入理解控件的工作原理并自定义自己的控件。 1. **ListView控件**:ListView是...
【标题】"一个VC++编写视频采集ATL控件及C#测试"涉及的主要知识点是使用Visual C++(VC++)开发视频采集功能,利用Active Template Library(ATL)创建COM控件,并结合DirectShow进行视频流处理。同时,还涵盖了如何在C#...
9. **用户界面设计**:若插件需要自定义用户界面,可以使用MFC(Microsoft Foundation Classes)或者WTL(Windows Template Library)来创建对话框、工具栏等控件。 10. **打包与部署**:完成所有功能后,你需要...
这时,我们需要借助其他手段来实现这一功能,例如使用ATL(Active Template Library)创建自定义控件来嵌入到RichEdit中。 ATL是Microsoft提供的一种轻量级的COM(Component Object Model)编程库,用于简化COM对象...
选择“文件”>“新建”>“项目”,然后在项目模板中选择“ATL COM 控件”。 四、ATL服务模板 幸运的是,VC2008提供了一个ATL服务模板,可以简化服务开发过程。在项目创建过程中,选择“ ATL Simple Service”模板。...
1. **设置项目属性**:在Visual C++ 6.0(VC6)环境中,创建一个新的ATL工程,并确保选择“可编写脚本的ActiveX控件”模板。这样会自动为你的控件生成必要的COM接口。 2. **定义接口**:在ATL项目中,你需要定义...
1. **ActiveX控件**:ActiveX是微软提出的一种组件技术,它允许开发者创建可重用的代码块,即控件,这些控件可以在多种支持ActiveX的环境中使用。在本例中,我们需要创建一个ActiveX控件来实现曲线显示功能。 2. **...
注册过程会生成一个CLSID(Class ID),这是识别VB控件的独特标识,后续在VC中需要使用这个ID来实例化控件。 2. **在VC中引入COM支持**:在VC项目中,需要包含对COM的支持。对于MFC项目,可以使用`#import`指令导入...
内容索引:VC/C++源码,控件相关,ATL 本实例向读者展示利用ATL编写ActiveX控件的编程方法,本程序编译运行后直接生成DLL文件,因此没有窗体让大家看,希望通过这个小例子让大家掌握VC++使用ATL编写控件的方法。
学习完这部分内容后,开发者应能熟练掌握ATL编写COM组件的技巧,并能在不同开发环境中灵活运用这些组件,提升软件开发效率。同时,理解COM组件的核心概念和工作原理对于深入理解Windows平台的软件开发至关重要。
此资源包“Visual C++ VC COM ATL为Office Word编写插件.zip”显然是一个指导如何使用VC++、Component Object Model (COM) 和 Active Template Library (ATL) 创建Microsoft Office Word的插件的教程或项目示例。...
在本文中,我们将深入探讨如何使用Visual C++ 6.0(简称VC6)来创建一个...注册完成后,ActiveX控件可以在Web页面中使用。以下是一个简单的HTML和JavaScript示例,展示了如何在网页中调用ActiveX控件的方法: ```html ...
在这个主题中,我们将深入探讨如何使用Visual C++ 6.0(简称VC6)来创建Office插件。这个压缩包文件包含的"用VC6编写Office插件.doc"文档,很可能是关于此过程的详细指南,涵盖了从基础概念到实际编程技巧的各种知识...
资源在编程中通常指的是应用程序中使用的非代码元素,如图像、图标、字符串、菜单等。在Windows编程中,这些资源通常被编译成二进制资源文件,并链接到可执行文件中。ATL编码助手可能包含了一些处理资源的辅助函数或...
在VC_ATL中,有几个关键的概念和技术: 1. **COM对象**:COM是一种二进制标准,用于组件间的交互。它定义了一种接口规范,使得不同进程甚至不同计算机上的组件可以相互调用方法。ATL提供了一套框架,使得开发者可以...
- 在MFC工程中,你可以创建一个继承自CStatic的自定义控件,然后在该控件中加载并处理GIF。首先,你需要包含gdiplus.h头文件,并初始化GDI+环境。接着,使用`Gdiplus::Image`类加载GIF文件,然后通过循环调用`Draw`...