最近刚开始学ActiveX,做的第一个实验就波折重重
用VS2008建了一个ActiveX工程,命名为MyKJ,然后在_DMyKJ接口添加了一个Test方法和clr属性(Get/Set方法实现),代码如下:
void CMyKJCtrl::Test(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
MessageBoxA(NULL,"测试","成功",MB_OK);
}然后我又用VS2008建了一个ASP.net工程,在aspx文件中调用这个ActiveX控件,代码如下:
<script language="javascript" type="text/javascript">
function Button1_onclick() {
var obj = document.getElementById("MyKJ");
obj.Test();
obj.clr = 1.23;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<object id="MyKJ" width=300 height=200 classid="CLSID:F911BE3C-15BA-4250-B062-3FB9F92556E6"></object>
<input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
</form>
</body>
运行后,本预计点击页面的按钮后就调用Test方法弹出对话框,但老是提示对象不支持此属性或方法,不知道到底错在哪里,希望有人指点一下迷津,多谢了!
用VS2008建了一个ActiveX工程,命名为MyKJ,然后在_DMyKJ接口添加了一个Test方法和clr属性(Get/Set方法实现),代码如下:
void CMyKJCtrl::Test(void)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
MessageBoxA(NULL,"测试","成功",MB_OK);
}然后我又用VS2008建了一个ASP.net工程,在aspx文件中调用这个ActiveX控件,代码如下:
<script language="javascript" type="text/javascript">
function Button1_onclick() {
var obj = document.getElementById("MyKJ");
obj.Test();
obj.clr = 1.23;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<object id="MyKJ" width=300 height=200 classid="CLSID:F911BE3C-15BA-4250-B062-3FB9F92556E6"></object>
<input id="Button1" type="button" value="button" onclick="return Button1_onclick()" />
</form>
</body>
运行后,本预计点击页面的按钮后就调用Test方法弹出对话框,但老是提示对象不支持此属性或方法,不知道到底错在哪里,希望有人指点一下迷津,多谢了!
解决方案 »
- 程序复制文件时怎么调用系统的覆盖提醒对话框??
- greta在vc2005上编译出现错误,求助!
- 关键词: 校园网 L2TP VPN认证 UDP广播 飞鸽传书 IP地址怎么不一样?
- 中文,英文混编字符串 , 如何实现分散对齐, 实现类市 word 或 exel 效果 ?
- 100分请教ADO的Recordset问题描述:当前记录集不支持更新。这可能是提供程序的限制
- 请问CToolBar的问题
- 如何得到窗口外的鼠标动作
- Help!为什么稍微改动一点都要编译很长时间?
- 那里有Visual c++数字图像处理的电子版本?先行谢过
- 请各位高手推荐一本有VC项目的书籍?
- 对话框初始化时中断
- 调用memcpy(lpDIBBits, lpNewDIBBits, lLineBytes * lHeight);
[id(2), helpstring("方法test1")] HRESULT Test([out,retval]);
}; 这个接口声明写了没,下面进行方法函数实现
#include <olectl.h>
#include <idispids.h>[ uuid(79A2D50C-CD4C-4DD2-8BAC-550888BD5524), version(1.0),
helpfile("MyKJ.hlp"),
helpstring("MyKJ ActiveX 控件模块"),
control ]
library MyKJLib
{
importlib(STDOLE_TLB); // CMyKJCtrl 的主调度接口 [ uuid(A71CE69D-4ADD-4EDE-B90D-09B402DE0D50),
helpstring("MyKJ Control 的调度接口")]
dispinterface _DMyKJ
{
properties:
[id(2), helpstring("属性 clr")] FLOAT clr;
methods: [id(DISPID_ABOUTBOX)] void AboutBox();
[id(1), helpstring("方法Test")] void Test(void);
}; // CMyKJCtrl 的事件调度接口 [ uuid(30CBCB08-BC02-4429-92B2-0FEB96B7A511),
helpstring("MyKJ Control 的事件接口") ]
dispinterface _DMyKJEvents
{
properties:
// 事件接口没有任何属性 methods:
}; // CMyKJCtrl 的类信息 [ uuid(F911BE3C-15BA-4250-B062-3FB9F92556E6),
helpstring("MyKJ Control"), control ]
coclass MyKJ
{
[default] dispinterface _DMyKJ;
[default, source] dispinterface _DMyKJEvents;
};};