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

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

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

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

......

......

......

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

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

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

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

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

一、利用ActiveX控件进行窗体的界面设计 

在VB的可视化的编程环境中,用户不必编写大量的代码,就可以利用VB提供的功能强大的大量控件设计出丰富的界面,这样一来可以使程序员从繁琐的代码编写任务中解脱出来,从而投入到更具有创造力和想象力的工作中去,设计出有个性,有特色、友好的界面。

下面是一个利用ActiveX控件来进行程序界面设计的示例,在这个示例程序中所用到的一些控件在程序的初始化阶段没有被加载,需在读者自己把它们添加到工具箱中。

1.启动一个新工程,向工具箱中添加ActiveX控件

启动一个新的标准Exe工程,然后选择菜单[工程]/[部件],在d出的对话框中选择选中部件对话框中的Microsoft Table Dialog Control6.0,确认后返回设计状态,就会发现SSTab控件已经加入到工具箱中。

2.设置SSTab控件属性

SSTab控件的状态可以在程序中动态的修改,比如在窗体的设计阶段双击窗体,在窗体的Form_load()事件中添加下列代码:

Private Sub Form_load()

SSTab1.TabCaption(1)="选项1" '设置选项1上的文本。

SSTab1.TabVisible(2)=False '设置选项2上的可见状态为不可见。

SSTab1.TabEnabled(0)=False '设置选项0的有效状态为无效。

SSTab1.Tab=1 '设置选项1为选中的状态

SSTab1.Tabs=4 '添加一个选项

SSTab1.TabsPerRow = 4 '设置一行中出现的标签卡数为4

End Sub

3.向窗体上添加控件

设计一个用于算术运算的应用例子,先向窗体上添加一个CommandButton控件,两个TextBox控件,一个SSTab控件,四个ToggleButton控件、两个UpDown控件和四个Lable控件。

在部件对话框中选中 Micrsoft Forms 2.0 Object Liberary和Micrsoft Windows Common Controls_25.0(SP2),添加ToggleButton控件和UpDown控件到工具箱。

控件说明如下:

CommandButton 控件用来结束程序的运行,为程序的正常结束提供一个出口。

TextBox控件用来显示程序中的两个变量X和Y的值。

UpDown控件用来实现变量的更新。

ToggleButton控件用来实现不同的加减乘除运算。

Lable控件用来显示文本的运算结果。

SSTab控件用来显示不同的选项,同时作为ToggleButton控件的容器。

4.添加事件响应代码

Private Sub Command1_Click()

End

End Sub

Private Sub Form_Load()

SSTab1.TabCaption(0) = "加法"

SSTab1.TabCaption(1) = "减法"

SSTab1.TabCaption(2) = "乘法"

SSTab1.TabCaption(3) = "除法"

If Text1.Text = "" Then '在设计时,将窗体上的两个文本框的属性清空。

Text1.Text = "0.00000"

End If

If Text2.Text = "" Then

Text2.Text = "0.00000"

End If

End Sub

Private Sub SSTab1_Click(PreviousTab As Integer)

ToggleButton1.Enabled = True

End Sub

Private Sub Text2_Change()

If Text2.Text = 0 Then

ToggleButton4.Enabled = False '如果Text2中的数字为0,除法无效。

Else

ToggleButton4.Enabled = True

End If

End Sub

Private Sub ToggleButton4_Click()

Label4.Caption = Val(Text1.Text) / Val(Text2.Text)

End Sub

Private Sub ToggleButton3_Click()

Label4.Caption = Val(Text1.Text) * Val(Text2.Text)

End Sub

Private Sub ToggleButton2_Click()

Label4.Caption = Val(Text1.Text) - Val(Text2.Text)

End Sub

Private Sub ToggleButton1_Click()

Label4.Caption = Val(Text1.Text) + Val(Text2.Text)

End Sub

Private Sub UpDown1_DownClick()

If Text1.Text >0 Then

Text1.Text = Val(Text1.Text) - 1

End If

End Sub

Private Sub UpDown1_UpClick()

If Text1.Text = "" Then

Text1.Text = 0

End If

Text1.Text = Val(Text1.Text) + 1

End Sub

Private Sub UpDown2_DownClick()

If Text2.Text >0 Then

Text2.Text = Val(Text2.Text) - 1

End If

End Sub

Private Sub UpDown2_UpClick()

If Text2.Text = "" Then

Text2.Text = 0

End If

Text2.Text = Val(Text2.Text) + 1

End Sub

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

详细描叙:

我以前在一个网站上看电影电视(在线播放)很正常,但是最近出了点问题,当我点击在线播放的时候在播放的那个网页跳出一行字:您的安全设置不允许网站使用安装在您计算机上的ActiveX控件。此页可能没有正确显示。单击此处查看选项...

接下来要等差不多两分钟左右的时间才正常播放,而以前打开播放网页马上会显示正在连接,正在缓冲,差不多30秒左右就可以正常播放了。

请问,是什么原因呢?和跳出的那一行字有关系吗?

本人现在有用金山毒霸和兔子魔法v7.9版本,经常设置一些东东,是不是有地方设置错了?还是把电脑中的某些参数设置错了,请高手指点,不胜感激!

解析:

Authorware作为一种主要面向非程序员的多媒体创作工具,具有简单易用、编程灵活的特点,但其软件功能相对比较简单。为了满足一些高级设计人员进行复杂程序创作的需要,Authorware从4.0版本开始提供了对ActiveX控件的支持,允许用户在Authorware文件中嵌入ActiveX控件,与其它支持ActiveX控件的环境中一样方便快捷地使用。由于有许多软件厂商支持ActiveX技术,所以大多数功能都能找到相应的ActiveX控件。这意味着在Authorware中,通过调用ActiveX控件来直接使用现成的程序模块,从而省掉许多繁琐的编程工作。所能使用的ActiveX控件,除了Windows *** 作系统本身提供的以外,.还可以根据需要,利用编程语言如VB、VC、Delphi等,制作具有特殊功能的ActiveX控件,然后在Authorware中使用它们。

1 ActiveX的基本知识

1.1 Activex简介

ActiveX是Microsoft的元素软件标准。简单地说,ActiveX技术是一种共享程序数据和功能的技术。它由微软提出并大力推广,并已成为事实上的标准。

ActiveX技术是Microsoft对OLE技术的更新和发展,Microsoft公司为了适应网络的高速发展把它的OLE技术和OCX技术融为一体并加以改进形成联合标准,改进之后赋予新名字ActiveX。也就是说,ActiveX中涵盖了OLE的所有技术和功能,同时又具有许多新的特性,以适应网络发展的需要。

ActiveX指的是一组包括控件、DLL和ActiveX文档的组件,它通常以动态链接库的形式存在,其设计思想是将一个程序(比如Flas *** )嵌入到另一个程序中(这个程序通常被称做容器,比如Authorware、Delphi、VB、VC、Inter Explorer等)。借助这种技术使得用户在一个程序中所创建的信息可以被集成到其它程序所产生的文档中。.这样就可使它(如Flas *** )可以随意地应用到各种场合。

ActiveX控件的数据输入和函数功能执行都必须通过容器,因此ActiveX控件和容器之间必须有一些特定的接口协议。ActiveX控件必须具备如下的性能机制:

属性和方法:ActiveX控件必须提供属性的名称、方法的名称及参数,通过这项机制,容器可以存取和改变ActiveX控件的属性参数。

事件:ActiveX控件由这项机制通知容器在ActiveX控件中发生的事件,比如属性参数的改变,用户按下鼠标左键等。

虽然在本质上ActiveX和OLE是同一种技术(实现不同程序的数据和功能的共享),但其目的有所差别。ActiveX的目的主要是共享程序模块之间的计算功能,生成一些专门的可以嵌入其他程序中的“小程序”,例如Microsoft web浏览器控件可以使得别的应用程序能够浏览(仅仅是浏览而不是创建)Web网页。

ActiveX控件是一个模块化的灵活对象,如果某个应用程序或网页需要增加一项特殊的功能,则无须重写整个程序,只要灵活地插入一个具有此项功能的ActiveX控件即可实现,ActiveX的优势还在于它的动态可交互性,用户可以动态地在使用过程中,通过改变它的属性和参数,在应用程序中实现自己的特殊要求。

1.2 使用ActiveX

作为一个外部程序,ActiveX控件在Authorware中的使用与普通图标的使用有很大区别。总的来说,使用ActiveX控件要涉及到以下内容。

1.2.1 安装注册控件

如果要使用自己编写的控件或者使用其他人提供的控件,就先要在Windows中进行注册。同样如果我们的程序中使用了控件又要交给用户使用,最好必须先检测用户机中是否注册了该控件,若没有就要进行注册。

注册的方法有两种:

1.手动注册

方法是:单击Windows的开始菜单,选择运行命令,在打开的对话框中输入以下命令:

regsvr32 <ActiveX控件的文件名>

regsvr32.exe是Windows自带的ActiveX注册工具,可以在Windows的系统目录中找到,假定要注册一个自建的控件New.ocx,那么就输入如下命令:regsvr32 new.ocx,如图1所示。

图1 运行窗口

单击确定按钮,如果注册成功,将会出现如图2所示的对话框,提示成功,否则会出现如图3所示的对话框,提示没有注册成功,原因一般是已经注册过该控件或控件本身有问题。

图2 注册成功对话框

图3 注册失败对话框

若要解除某一个ActiveX控件的注册,则格式如下:

regsvr32 /u <ActiveX控件的文件名>

比如要删除刚才.注册的控件new.ocx,就可以在运行窗口输入以下命令:

regsvr32 /u new.ocx

然后单击确定按钮,如果删除成功,将出现对话框来提示成功删除,如图4所示。

图4 控件删除成功对话框

2.在Authorware中自动注册

方法是利用Authorware 中的Xtra ActiveX 里的函数来进行注册。

对ActiveX控件注册的格式如下:

ActiveXControlRegister("<ActiveX控件的文件名>")

如要注销该控件,格式如下:

ActiveXControlUnregister("<ActiveX控件的文件名>")

同样以new.ocx为例(通常首先要检测当前系统是否支持控件注册):

注册控件:

if ActiveXInstalled()=-1 then

result:= ActiveXControlRegister(FileLocation^"new.ocx")

end if

这里假定new.ocx是放在程序文件所在目录中。result是自定义变量,用来记录函数ActiveXControlRegister的返回值的,若注册成功则返回值为-1,.否则为0。

注销控件:

if ActiveXInstalled()=-1 then

result:= ActiveXControlUnregister(FileLocation^"new.ocx")

end if

具体的用函数注册控件和删除控件在后面相应的实例中均有介绍。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11418031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存