佚名通过本文主要向大家介绍了
VC中调用第三方ActiveX控件,如何在Create时设置param等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: VC中调用第三方ActiveX控件,如何在Create时设置 param
描述:
<OBJECT ID="ThirdPartyCtl" CLASSID="CLSID:00000000-CC0D-44C9-8CFC-D63077BD683C">
<PARAM NAME="xxx" VALUE="yyyy">
</OBJECT>
我在MFC对话框中 添加“ActiveX中的MFC类”
由于这个控件需要license id ,在html页面中,可以通过 <param> 结点设置
但我再VC中直接创建,我不知道如何设置 <param> 就会弹出各种提示,就是告诉你,你需要设置license id
bSuccess = m_ctrl.Create(_T("XXXControl"), WS_CHILD|WS_VISIBLE, rect, this, 333);
这句无论如何,都会弹出那个框
如果我在这之前调用:m_ctrl.put_licenseid("xxxx");
很显然,COM对象都没创建好,肯定崩溃。
虽然Create成功后,我再调用 put_licenseid 是没问题的,后续调用其他接口方法也正常了,但是开始时候的提示框没办法去掉啊,这是第三方控件啊
各位,有知道如何做的码?
解决方案1:
描述:
ActiveX
那个第三方ActiveX的网页调用示例:<OBJECT ID="ThirdPartyCtl" CLASSID="CLSID:00000000-CC0D-44C9-8CFC-D63077BD683C">
<PARAM NAME="xxx" VALUE="yyyy">
</OBJECT>
我在MFC对话框中 添加“ActiveX中的MFC类”
由于这个控件需要license id ,在html页面中,可以通过 <param> 结点设置
但我再VC中直接创建,我不知道如何设置 <param> 就会弹出各种提示,就是告诉你,你需要设置license id
bSuccess = m_ctrl.Create(_T("XXXControl"), WS_CHILD|WS_VISIBLE, rect, this, 333);
这句无论如何,都会弹出那个框
如果我在这之前调用:m_ctrl.put_licenseid("xxxx");
很显然,COM对象都没创建好,肯定崩溃。
虽然Create成功后,我再调用 put_licenseid 是没问题的,后续调用其他接口方法也正常了,但是开始时候的提示框没办法去掉啊,这是第三方控件啊
各位,有知道如何做的码?
解决方案1:
将控件拖到界面上,直接在控件属性里设置。
解决方案2: MSDN98_1.ISO http://pan.baidu.com/s/1dDF41ix, MSDN98_2.ISO http://pan.baidu.com/s/1bnGo0Vl
CoCreateInstance自己创建控件接口;
设置接口属性;<-- 这个就是你要做的
让你的窗口去AttachControl这个接口,而不是CreateControl,否则你的控件木有机会执行自定义初始化
不是应该使用 CreateControl 来创建吗?
如果需要授权 Key,那么应该
bstrLicKey
Optional license key data. This data is needed only for creating controls that require a run-time license key. If the control supports licensing, you must provide a license key for the creation of the control to succeed. The default value is NULL.