vc++ ocx中添加自定义参数

分类: C/C++ 发布时间: 2017-12-09 16:33

虽然ocx已经过时,现在还是有很多网页使用ocx技术。加载ocx时就会遇到需要提前输入自定义参数的问题,譬如:要连接的服务器的IP地址,数据库的地址,比对ocx版本之类的,这样就需要在加载ocx时输入参数,现将自己研究的内容记录下来,给其他人一些参考,如有不对的地方,还请告诉我,大家一起交流进步。

1.在图1中添加 test1 的成员变量

ocx 中的成员变量

2.单击完成之后,会在idl中生成响应的属性,同时自动生成响应的成员变量。

ocx 教程

ocx 开发

3.对属性做持久化,就是在Ctrl文件中DoPropExchange方法调用 PX_方法:

 

void CocxCustomparamCtrl::DoPropExchange(CPropExchange* pPX)
{
ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
COleControl::DoPropExchange(pPX);

// TODO: Call PX_ functions for each persistent custom property.
PX_String( pPX, L”test1″, m_test1, L”0″ );

}

4.在VS2010的菜单项:project-Class Wizard中,选择 给Ctrl类添加OnCreate方法,在OnCreate中添加 MessageBox( m_test1 );

vs2010 开发ocx

5.在html中给该属性值进行赋值,测试:

<code>

<HTML>
<HEAD>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<meta http-equiv=”Pragma” content=”no-cache”>
<title>Activex Demo</title>

<script type=”text/javascript”>
function test()
{
document.getElementById(“ocxCustomparam”).AboutBox();
}
</script>
</HEAD>

<BODY>
<TABLE cellSpacing=3 cellPadding=3 bgcolor=”#DCE0EC” align=center style=”border:2px dashed #666666″>
<TR>
<TD width=400 height=300>
<OBJECT ID=”ocxCustomparam” name=”ocxCustomparam” CLASSID=”CLSID:1895397C-D798-4353-AC1D-733CB26C1B5C” events=”true” HEIGHT=800 WIDTH=1200 align=”top”>
<PARAM NAME=”test1″ VALUE=”IamTest1″ />
</OBJECT>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

</code>

OCX 自定义属性传递参数


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!