用 VC++ 2005 建立ActiveX 分步走

系统 1690 0

如何使用VC++ 2005创建一个ActiveX控件呢,请听我慢慢道来。
 

首先选择新建项目,选择 Visual C++  MFC -> MFC ActiveX 控件




输入项目名称,本例子我们起名为 FActiveX ,点击确定。


 

在控件设置中 仅选中 运行时不可见 ,然后选择完成。

到此一个完整的 ActiveX 框架就已经搭成了, VC2005 为我们生成了所有必须的文件,现在你就可以编译一下了,应该没有任何的错误和警告,否则就可能是你的开发环境有问题了。

在工程目录里的 Debug 子目录下已经生成了 FAvtiveX.ocx 的文件,说明我们已经成功生成控件了,只不过这个控件没有任何功能和接口。

  下面我们就逐个添加控件的2个要素:事件、方法;



在类视图中选中 CFActiveXCtrl类,点击右键选择 添加->添加事件

在添加事件向导里,填写事件名称 RecvData ,参数类型 BSTR, 参数名 strData,

添加 将参数名添加到参数列表。

点击完成,事件就添加完了.

那方法该如何添加呢?

类视图 ->接口->FAvtiveXlib->接口->_DFAvtiveX 上点击右键选择 添加->添加方法

在添加方法向导中,返回类型选择void,方法名Show,参数类型BSTR,参数名strMsg,

选择 完成 ,至此方法就添加完成了。

 

打开 FAvtiveXCtrl.cpp文件,在Show程序里添加如下测试代码

    RecvData(strMsg);

void CFAvtiveXCtrl::Show(LPCTSTR strMsg)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    // TODO: 在此添加调度处理程序代码
    RecvData(strMsg);
}

  

  

现在我们来重新生成解决方案,应该没有任何错误和警告产生。

至此我们的第一个控件大功告成,现在就让我们来测试一下。  

首先新建一个 HTM 文件,内容如下:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ActiveX测试</title>
</head>
<object id="MYAvtiveX" classid="clsid:42BB26D9-323D-4E06-A2B3-D04CF3C4C074" > </object> 
<body>
<input type='button' onclick='MYAvtiveX.Show("Hello World!")' value='Click'> 
<script language='javascript' for='MYAvtiveX' event='RecvData(Message)'> 

    alert("响应ActiveX触发的事件成功:"+Message); 
      
</script> 
</body>
</html>
  

  

 

其中的 classid="clsid:42BB26D9-323D-4E06-A2B3-D04CF3C4C074" 代表我们刚刚生成的控件 clsid 可从 FAvtiveX.idl 文件中查到:

 

    //  CFAvtiveXCtrl 的类信息

    [ uuid(42BB26D9-323D-4E06-A2B3-D04CF3C4C074),
      helpstring("FAvtiveX Control"), control ]
    coclass FAvtiveX
    {
        [default] dispinterface _DFAvtiveX;
        [default, source] dispinterface _DFAvtiveXEvents;
    };
  

 

保存HTM文件,用IE打开,IE会提示“ 已限制此网页运行可以访问计算机的脚本或ActiveX控件 ”,请单击选择允许阻止的内容,在弹出的安全警告窗口选择“ ”,然后你就可以点击我们刚刚创建的按钮,IE会问你想不想交互之类的话,你选择“ ”即可看到如下窗口弹出:



说明我们的控件运行正常。

 

用 VC++ 2005 建立ActiveX 分步走


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论