在网页中,为什么我的ActiveX控件的属性不起作用?

iamshuke 2004-08-31 12:05:07
我的ActiveX控件有三个属性,分别是Stock、Member variable、Get/Set类型的,自己写EXE程序调用一切正常,但在网页中只有Stock类型的有效,其它都不起作用了,这是为什么呀?
<object classid="clsid:8E8351AD-B18C-423E-B128-B9BD0CCA142B" id="TestActiveX1" width="100" height="50">
<param name="Text" value="aa">
<param name="HYParam" value="aaaaaaaa">
<param name="Param2" value="bbbbbbbbbb">
</object>
对不起,第一次作ActiveX,让大家见笑了。
...全文
209 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamshuke 2004-09-01
  • 打赏
  • 举报
回复
谢谢
skyxie 2004-09-01
  • 打赏
  • 举报
回复
请在msdn的"索引"的关键字中输入:
ActiveX control topics

然后看Serializing ActiveX controls
skyxie 2004-09-01
  • 打赏
  • 举报
回复
Property Exchange Functions Purpose
PX_Blob( ) Serializes a type Binary Large Object (BLOB) data property.
PX_Bool( ) Serializes a type Boolean property.
PX_Color( ) Serializes a type color property.
PX_Currency( ) Serializes a type CY (currency) property.
PX_Double( ) Serializes a type double property.
PX_Font( ) Serializes a Font type property.
PX_Float( ) Serializes a type float property.
PX_IUnknown( ) Serializes a property of type LPUNKNOWN.
PX_Long( ) Serializes a type long property.
PX_Picture( ) Serializes a type Picture property.
PX_Short( ) Serializes a type short property.
PX_String( ) Serializes a type CString property.
------------------------------------------------
PX_ULong( ) Serializes a type ULONG property.
PX_UShort( ) Serializes a type USHORT property.


For more information on these property exchange functions, seePersistence of OLE (ActiveX) Controls in the Class Library Reference.
skyxie 2004-09-01
  • 打赏
  • 举报
回复
看了代码了,只需要这样该两句就可以了
void CTestActiveXCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);

// TODO: Call PX_ functions for each persistent custom property.
//添加这两句
PX_String(pPX, _T("Param2"), m_param2, "Init Val for Param2");
PX_String(pPX, _T("Param1"), m_sParam1, "Init Val for param1");
}
iamshuke 2004-09-01
  • 打赏
  • 举报
回复
找个地方,把代码放上去了,哪位老大帮我看看。谢了。

http://cmmy.vicp.net/viewFile.asp?Boardid=2&ID=2031
iamshuke 2004-09-01
  • 打赏
  • 举报
回复
这个地方人好少。 黑白精灵你好,收到我的代码了吗?
skyxie 2004-08-31
  • 打赏
  • 举报
回复
xrg_soft@163.com
iamshuke 2004-08-31
  • 打赏
  • 举报
回复
To skyxie(黑白精灵):

三个属性都是字符串类型的。
iamshuke 2004-08-31
  • 打赏
  • 举报
回复
为了方便大家帮我查找问题,我把VC工程和测试网页压成rar了,只有27K,麻烦想帮忙的各位留下Email,或者用留言通知我。
再次谢谢大家!
skyxie 2004-08-31
  • 打赏
  • 举报
回复
MyParam属性是什么类型的呢
iamshuke 2004-08-31
  • 打赏
  • 举报
回复
To skyxie(黑白精灵):

我有个属性是MyParam,然后这样传参数:<param name="MyParam" value="aaaaaaaa">,
但我的ActiveX没有收到该参数"aaaaaaaa",但是在自已写的测试EXE中,是可以的。
还有一个属性Text是Stock类型的,<param name="Text" value="ok">,ActiveX中可以得到"ok"。
skyxie 2004-08-31
  • 打赏
  • 举报
回复
三个属性,分别是Stock、Member variable、Get/Set类型的
——————————————————————————————
什么意思?


如果你有个属性为 aaa,那么会自动出现get_aaa(...),set_aaa(...)
get_aaa()用于你获取该Acitvex的aaa属性时调用
set_aaa()在你为该ActiveX的aaa属性赋值的时候调用

比如你在网页中
id="TestActiveX1" width="100" height="50">
<param name="aaa" value="the val">
</object>
那么IE自动调用set_aaa(...)

<script language = "javaScript">
//...
string val = TestActiveX1.aaa
//...
</script>
那么IE自动调用get_aaa(...)

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧