首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

100分来了,vb6摘引接口,最后的难点.

2012-12-30 
100分来了,vb6引用接口,最后的难点...微软对于office中的 CustomTaskPane,已经把VB6抛弃了,没有可视化的操

100分来了,vb6引用接口,最后的难点...
微软对于office中的 CustomTaskPane,已经把VB6抛弃了,没有可视化的操作 ,甚至连示例说明都没有一个..,就仅仅在帮助文档里有那么几句话,如下:

Office 开发人员参考 
ICustomTaskPaneConsumer.CTPFactoryAvailable 方法 
将 CTPFactory 对象传递给随后可在创建自定义任务窗格时使用的 Microsoft ActiveX 加载项。
可以用任何支持 COM 并允许创建动态链接库 (DLL) 文件的语言创建自定义任务窗格。例如,Microsoft Visual Basic? 6.0、Microsoft Visual Basic .NET、Microsoft Visual C++?、Microsoft Visual C++ .NET 和 Microsoft Visual C#?。但是,Microsoft Visual Basic for Applications (VBA) 不支持创建自定义任务窗格。 
按照C#示例的代码进行翻译,还是不行,望MVP出手,来解决这个问题..

public class Connect : Object, Extensibility.IDTExtensibility2, ICustomTaskPaneConsumer
... 
object missing = Type.Missing;
public CustomTaskPane CTP = null;

public void CTPFactoryAvailable(ICTPFactory CTPFactoryInst)
{
CTP = CTPFactoryInst.CreateCTP("SampleActiveX.myControl", "Task Pane Example", missing);
sampleAX = (myControl)CTP.ContentControl;
sampleAX.InsertTextClicked += new InsertTextEventHandler(sampleAX_InsertTextClicked);
CTP.Visible = true;






VB6代码如下,这里我并没有创建自己的AX控件,只是想建一个任务窗..
创建后没任何反应,也没报错,强烈要求MVP出来弥补这个空白..
Option Explicit


Implements ICustomTaskPaneConsumer
Implements IDTExtensibility2

Dim oWD As Word.Application
Dim ctp As CustomTaskPane

   
Private Sub ICustomTaskPaneConsumer_CTPFactoryAvailable(ByVal CTPFactoryInst As Office.ICTPFactory)
Set ctp = CTPFactoryInst.CreateCTP("SampleActiveX.myControl", "mytest")
ctp.Visible = True

End Sub

Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant)

End Sub

Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant)

End Sub

Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
Set oWD = Application

End Sub
[解决办法]
不懂,学习中,呵呵
[解决办法]
100呀,可惜我不懂,帮顶。。。
[解决办法]
请问你的SampleActiveX.myControl控件创建了吗?SampleActiveX.myControl应该是指向你自己的ActiveX控件代码的

个人看法,如果是COM的,没理由VB6的ActiveX就不行了。C#也要设置成COM可见才行。
[解决办法]
没有可视化编辑? 不明白你的意思。

VB ActiveX控件在类模块内你可以声明任意窗体,其他自定的控件,可以做Form做的任何事情,什么才叫可视化操作呢?

引用:
引用:
请问你的SampleActiveX.myControl控件创建了吗?SampleActiveX.myControl应该是指向你自己的ActiveX控件代码的

个人看法,如果是COM的,没理由VB6的ActiveX就不行了。C#也要设置成COM可见才行。

这个问题已经得到解决.VB6确实需要自己事先写一个控件,没有可视化编辑,既然微软都放弃在VB6……

[解决办法]
学习了,这个接口好像是从OFFICE2007开始有的对吗
[解决办法]
这个需要标记一下:)

热点排行