VC6下创建一个简单的ActiveX控件

本文介绍如何使用VC6.0创建具备属性、方法、事件及属性编辑功能的ActiveX组件,并提供了详细的步骤与代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在软件开发过程中,你可能要向你的开发团队,提供某些编程接口。这里可能有几种的选择方式。COMDLL或者直接用源代码类来提供。还有一种非常方便的方法就是通过ActiveX控件来提供。它也是语言无关,可以在DelphiVBVC下使用。
本文就来讲述如何利用VC6.0来创建一个ActiveX组件,这其中主要实现了如下的功能:
添加属性、添加方法,添加事件和提供属性编辑窗口这四大功能。
下面我们就以实例来说明。
1步,利用VC向导,建立一个“MFC ActiveX ControlWizard”工程,项目名可定为“TmpOcx”。一路默认下去完成向导。
2步,在CtmpOcxCtrl类的“MFC ClassWizard”里切换到“Automation”页,添加属性和方法。如图1
(图1
点击“Add Property”按钮,添加一个“MsgContext属性,类型为BSTR,如图2
(图2
点击 Add Method”添加一个“ShowMessage”方法,没有返回值。如图3                                                                                                                                                     
(图 3
3步:实现属性和方法。
CtmpOcxCtrl类里添加一个私有变量m_MsgContext
Private:
   CString m_MsgContext;
 
(2)属性实现方法:
BSTR CTmpOcxCtrl::GetMsgContext()
{
    return m_MsgContext.AllocSysString();
}
 
void CTmpOcxCtrl::SetMsgContext(LPCTSTR lpszNewValue)
{
       if (m_MsgContext.Compare(lpszNewValue) != 0 )
       {
              m_MsgContext = lpszNewValue;
              SetModifiedFlag();
       }
}
 
(3) ShowMessage实现方法:
void CTmpOcxCtrl::ShowMessage()
{
   AfxMessageBox(m_MsgContext);
}
 
4步:编辑属性编辑框。
1)在资源编辑器,编辑属性对话框如图4
(图4
2)给输入框控件添加关联变量,也是利用MFC Classwizards来实现,如图:
(图5
 
3     CtmpOcxCtrl类的DoPropExchange方法里添加如下代码,关联属性。
PX_String(pPX,"MsgContext",m_MsgContext,"欢迎使用此Acitvex,呵呵");
 
至此,除了事件之外,别的功能都实现了。
 
5步,添加事件。
在这里,我们添加一个当MsgContext属性被改变时的通知事件。实现很简单,请看如下步骤:
在类CtmpOcxCtrlMFC ClassWizards向导里的“Activex Event”页里,添加一个事件,如图6
(图6
(2)CTmpOcxCtrl类的SetMsgContext方法里,触发MsgContext值变的事件。
 
void CTmpOcxCtrl::SetMsgContext(LPCTSTR lpszNewValue)
{
       if (m_MsgContext.Compare(lpszNewValue) != 0 )
       {
              m_MsgContext = lpszNewValue;
              FireOnMsgChange();
              SetModifiedFlag();
       }
}
 
最后编译运行,将自动注册此Ocx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值