在VC中添加控件的包装类
2011-04-24 23:55 愤怒的青蛙 阅读(3080) 评论(1) 编辑 收藏 举报参考资料:http://topic.csdn.net/t/20050408/22/3921413.html4楼
今天写VC的程序,希望使用EXCEL表格控件,也就是Microsoft的Spreadsheet空间,开发环境是VS2010(经试验,在VS2008中也适用),当添加改控件的包装类时,发现他不像VC6.0中可以自动添加,去网上搜了一下,方法大概有两个:
以Microsoft Chart Control , version 6.0 (OLEDB)这个控件为例,添加步骤是:
以下参考资料:http://topic.csdn.net/u/20100621/00/1a368d9d-f186-49d5-851c-02fae72ded7f.html
第一种方法:
(使用这种方法注意,一定不要选中任何空间或者资源,如对话框或者菜单项,我一开始就是这里搞错了,结果一直出不来,搞的我有撞墙的欲望)
菜单项目-> 添加类->选择ActiveX控件中的MFC类->弹出“从ActiveX控件添加类向导”对话框
-> 选择从文件添加类->选择路径“C:\windows\system32\mschrt20.ocx”(mschrt20.ocx是这个控件的文件)
->点击“>>”按钮添加所有接口(会弹出提示对话框说_DMSChartEvent这个接口找不到coclass)
->点击完成
->查看类视图,发现添加了许多类,其中的CDMSChart是最主要的类
第二种方法:
->在项目中随便创建一个对话框资源
->在对话框中右键->“插入ActiveX控件”->选择Microsoft Chart Control , version 6.0 (OLEDB)
(也可以在工具箱面板上右键->“选择项”->在弹出对话框中单击“COM组建”选项卡->找到Microsoft Chart Control , version 6.0 (OLEDB)打上复选标记确定->控件图标被添加到工具箱面板上可以直接拖放到对话框上)
->在对话框上右键这个控件->“添加变量”为对话框创建一个空间变量->IDL会自动创建此控件的包装类,CDMSChart.h和CDMSChart.cpp文件。
经过尝试,发现使用这两种方法添加的都有问题,那就是添加的类的.h和.cpp文件都似乎是最初的接口文件,使用很不方便,另外,有一些控件需要添加不知一个类,但是使用这种方法无法完成,后来无意中浏览到CSDN论坛,就是文章最初提到的那个参考资料,发现了一个解决方法,那就是在使用第一种方法添加包装类时,不要使用从注册表的方法,要使用从文件添加,比如Spreadsheet包装类时选从文件C:\Program Files\Common Files\Microsoft Shared\Web Components\10\OWC10.dll ,这是会出现多个类,CRange源自_Range, CSpreadSheet源自ISpreadSheet ,这样就可以添加多个控制类。
这样看来,微软貌似将一个简单的事情复杂化了,这不知道他是怎么想的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人