如何使用VC++ 2005 给ActiveX控件添加方法,属性,事件

网上看了很多的教程就是没有介绍怎么在vc++ 2005创建ActiveX控件的,找了半天终于找到了!

 

刚开始系统生成的方法,总是不能被调用,现在才知道原来是加错地方了

对外的方法应该加到接口上!具体步骤见下文:

 

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

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

......

......

......

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


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

 

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

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

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

那方法该如何添加呢?(注意:是添加到接口上的)

 

2008下的

 

类视图 ->接口->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会问你想不想交互之类的话,你选择“”即可看到如下窗口弹出:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值