首页 > 其他分享 >关于ATL组件网页调用

关于ATL组件网页调用

时间:2022-10-12 12:12:34浏览次数:57  
标签:控件 网页 ATL DISPID PROP CLSID 组件 ENTRY NULL

一、控件只构造不初始化

原因:说明网页已经加载了组件,但自身实现可能不完整,使用下面的方案3解决了问题

 

解决方案1:

BEGIN_PROP_MAP(CYQFrame)
PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
PROP_ENTRY("Appearance", DISPID_APPEARANCE, CLSID_NULL)
PROP_ENTRY("BackColor", DISPID_BACKCOLOR, CLSID_StockColorPage)

PROP_ENTRY("BackStyle", DISPID_BACKSTYLE, CLSID_NULL) PROP_ENTRY("BorderColor", DISPID_BORDERCOLOR, CLSID_StockColorPage)

PROP_ENTRY("BorderStyle", DISPID_BORDERSTYLE, CLSID_NULL)
PROP_ENTRY("BorderVisible", DISPID_BORDERVISIBLE, CLSID_NULL)
PROP_ENTRY("BorderWidth", DISPID_BORDERWIDTH, CLSID_NULL)
PROP_ENTRY("Caption", DISPID_CAPTION, CLSID_NULL)
PROP_ENTRY("Enabled", DISPID_ENABLED, CLSID_NULL)
PROP_ENTRY("Font", DISPID_FONT, CLSID_StockFontPage)
PROP_ENTRY("ForeColor", DISPID_FORECOLOR, CLSID_StockColorPage)
//  PROP_ENTRY("HWND", DISPID_HWND, CLSID_NULL)
//  PROP_ENTRY("MouseIcon", DISPID_MOUSEICON, CLSID_StockPicturePage)
PROP_ENTRY("MousePointer", DISPID_MOUSEPOINTER, CLSID_NULL)

PROP_ENTRY("Picture", DISPID_PICTURE, CLSID_StockPicturePage)

//  PROP_ENTRY("Valid", DISPID_VALID, CLSID_NULL)
// Example entries
// PROP_ENTRY("Property Description", dispid, clsid)
// PROP_PAGE(CLSID_StockColorPage)
END_PROP_MAP()
一个一个的注释掉,就知道哪些属性出错了。

 

解决方案2:

检查一下DISPID等于1的那个属性或者方法为什么返回失败

解决方案3:

你的控件至少需要实现下面接口中的一个:
IPersistStream
IPersistStreamInit
IPersistPropertyBag
你应该让组件继承下面的基类之一:
IPersistStreamInitImpl
IPersistPropertyBagImpl

解决方案4:

程序初始化时加上AfxOleInit();试试。

 

二、控件中打开菜单时,控件卡死,不论页面还是MFC中加载

原因:尚未弄清,可能与MFC与ATL同时存在有关系。

解决方案:放弃动态创建控件的方式加载控件,在资源中静态插入控件(控件需要有progid)。修改控件大小时直接通过MFC方式获取到控件容器。

 

标签:控件,网页,ATL,DISPID,PROP,CLSID,组件,ENTRY,NULL
From: https://www.cnblogs.com/ice-arrow/p/16784077.html

相关文章

  • uniapp- map组件监听地图缩放
    需求:根据地图缩放比例大小判断展示maker气泡(地图缩小时只显示maker,放大到一定数值时再显示气泡)   官方提到的这个回调只能监听拖拽,并不能监听缩放,这样做的效果就是......
  • 中等-817. 链表组件
    解题思路:对链表循环执行结果:通过执行用时:232ms,在所有 JavaScript 提交中击败了36.36%的用户内存消耗:44.5MB,在所有 JavaScript 提交中击败了93.18%的用户通......
  • Jchardet——支持检测并输出文件编码方式的组件
     简介Jchardet是OpenAtomOpenHarmony(以下简称“OpenHarmony”)系统的一款检测文本编码的组件。当上传一个文件时,组件可以检测并输出该文件中文本使用的编码方式。支......
  • Matlab 数值分析计算汇集
    分享一下数值分析经常遇到的算法,代码有点多;算法原理之类的网上均可以找到,本文只给出对应的代码实现。1、线性代数的直接接法%追赶法求解线性方程组Ax=b,其中A是三对角方阵fun......
  • Matlab自动化控制-Adrc自抗扰控制
    想要初步了解ADRC,可以从韩京清教授的一篇文献和一本书看起1.文献: 从PID技术到“自抗扰控制”技术(《控制工程》,2002)2.书: 自抗扰控制技术——估计补偿不确定因素的控制技术A......
  • 即用型UI组件库Kendo UI R3 2022,让应用主题开发更容易
    KendoUI是带有 jQuery、Angular、React和Vue库的JavaScriptUI组件的最终集合,无论选择哪种JavaScript框架,都可以快速构建高性能响应式Web应用程序。通过可自定义的UI组件......
  • 817. 链表组件
    817.链表组件给定链表头结点 head,该链表上的每个结点都有一个唯一的整型值。同时给定列表 nums,该列表是上述链表中整型值的一个子集。返回列表 nums 中组件的......
  • Vue里面父组件嵌套子组件的生命周期
     最常见的4种状态1.Creation2.Mounting3.Updating4.Unmouting 通常create用来放API的如果是在Mount是挂载后操作DOM的   我们搞清楚他的生命周期顺序,父......
  • 好用的组件收藏
    播放器播放条斗鱼、Youtobe等https://web-streaming.github.io/ppbar/使用使用ppbar,需要导入ProgressBar类和ppbar的样式。importProgressBarfrom'ppbar';......
  • 1、前端开发:HTML知识总结——网页结构
            HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本......