第18课 ActiveX编程(下面X均为ActiveX简称

本文详细介绍在Visual Basic和Visual C++中创建及使用ActiveX控件的过程。涵盖控件的添加、属性与方法的定制、事件处理及控件的调试等方面。适合初学者和进阶开发者。

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

 

18 ActiveX编程(下面X均为ActiveX简称)

1.VB中调用X控件,添加方法 project->Add components。另外可以用Object Browser来查看控件

2.VC中创建X控件

1.新建一个X工程名为Clock,注意一个文件中可以包含多个控件。

2.保持缺省设置,完成。注意它生成的三个类,以及相关的接口。

3.运行它。选择TSTCON32.exe作为容器。

4.选择Insert Control,此时我们可以看到,它画了一个椭圆。也可以在VB中测试。

5.删除注册信息。用regsvr32 /u +文件名。也可以在菜单选择反注册命令。

6.重写代码。在CClockCtrl::OnDraw()中画了一个椭圆,此时我们在其中得到系统时间,并显示它。为此我们在OnCreate()设置了一个定时器,每隔一定时间发出一个Invalidate()消息,使窗口重绘。

7.如何改变控件的背景色和前景色?ClassWizard->AutoMation->Add Property->BackColor,还需要在OnDraw()中加上相应的代码

   CBrush brush(TranslateColor(GetBackColor()));

pdc->FillRect(rcBounds, &brush);

pdc->SetBkMode(TRANSPARENT);

pdc->SetTextColor(TranslateColor(GetForeColor()));

8.增加属性页。在

BEGIN_PROPPAGEIDS(CClockCtrl, 2)此时数目也得改成相应的数目

PROPPAGEID(CClockPropPage::guid)

PROPPAGEID(CLSID_CColorPropPage)

END_PROPPAGEIDS(CClockCtrl) OK~

9.增加自定义属性:ClassWizard->AutoMation->Add Property加上一个变量m_interval,类型为short,对应外部变量为Interval。在CClockCtrl中增加OnIntervalChanged方法。添加如下代码:

   if(m_interval<0 || m_interval>6000)

{

m_interval=1000;

}

else

{

m_interval=m_interval/1000*1000;

KillTimer(1);

SetTimer(1,m_interval,NULL);

BoundPropertyChanged(0x1);

}

   10.测试:Control->Invoke Methods

   11.将时间间隔加到属性页中,在资源视图中加入一文本框和编辑框。为EditBox关联成员变量,加入属性interval

   12.增加方法:ClassWizard->AutoMation->Add Method->Hello加入代码 OK!在VB中可以调用此方法!

   void CClockCtrl::Hello()

{

// TOD Add your dispatch handler code here

MessageBox("Hello world!");

}

   13.增加事件:ClassWizard->AutoMation->Add Events->Click

   14.增加自定义事件:ClassWizard->AutoMation->Add Events->NewMinute

      在新的一分钟到达时发出这个通知,在OnDraw()中写代码:

       CTime time=CTime::GetCurrentTime();

if(0==time.GetSecond())

{

FireNewMinute();

}

   15.Interval属性具有持久性。在CClockCtrl::DoPropExchange()中调用PX_short()方法,OK

    PX_Short(pPX,"Interval",m_interval,1000);

   16.Property PageProperty属性中的interval保持一致的方法:在OnIntervalChanged()中调用BoundPropertyChanged(0x1);

   17.希望控件在设计时间内不走动的方法:在OnTimer()中, if(AmbientUserMode())InvalidateControl();巧妙!

3.VC中调用X控件

1.新建ClockTest对话框应用程序

2.点击右键->插入X控件->时钟控件

3.Project->Add Component会生成CClock类。

4.CCLockTestDlg中增加CClock类的成员变量m_clock,然后可以动态创建一个这样的东东!

5.试验Click(),NewMinute(),SetBkColor(),SetForeColor()方法和属性

6.如何为动态创建的控件做事件响应呢?首先你得知道它的ID号,然后参考非动态的控件事件代码,呵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值