zoukankan      html  css  js  c++  java
  • 在VC中添加控件的包装类

    参考资料: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 ,这样就可以添加多个控制类。

    这样看来,微软貌似将一个简单的事情复杂化了,这不知道他是怎么想的。

  • 相关阅读:
    关于1961年4月16日尤文图斯91国际米兰的故事
    《转》struts2动态方法配置 Action,使一个Action可处理多请求
    struts2跳转后总是会返回input
    CentOS设置服务开机自动启动【转】
    CentOS 6.2系统安装后的初始环境设置
    Ubuntu安装小技巧 拔掉网线
    虚拟机最小安装CentOS 6.2
    CentOS 6.2配置MySQL服务器
    CentOS修改机器名称
    配置GNOME环境
  • 原文地址:https://www.cnblogs.com/madhenry/p/2026591.html
Copyright © 2011-2022 走看看