网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读

源代码在线查看: 18.8 本章小结.txt

软件大小: 956 K
上传用户: kzdai22
关键词: TXT VC 目录
下载地址: 免注册下载 普通下载 VIP

相关代码

				18.8 本章小结
				
				本章主要介绍了 ActiveX控件方面的知识,以及实现 ActiveX控件的方法。一个典型的 ActiveX控件需要提供三种特性 z属性、方法和事件。在提供这三种特性时,应该做到界面友好,使用便利。例如应该在控件自己提供的属性表单中提供相应的属性页,让用户可以通过这些属性页设置控件的属性,同时应让属性具有持久性。另外,当在属性页上修改了控件的属性后,应该让控件将此改变信息通知给容器。最后,本章还介绍了 ActiveX控件的环境属性: UserMode.关于其他环境属性,读者可以自行查阅 MSDN。
				除此之外,本章还简单地介绍了Debug和 Release版本的区别。最后,编写了一个 VC II 程序调用前面实现的 ActiveX控件。要注意的是,如果直接在对话框资源上插入 ActiveX控件,它并不会为工程增加控件类。只有通过选择【Projed飞Add To Projed飞Components and Controls..】菜单项将控件增加到工程时,才会生成一个控件封装类。这时,在程序中可以直接调用这个封装类提供的方法来完成对控件的访问。
				如果读者希望了解关于 ActiveX控件的更多知识,可以查看 MSDN中相关的内容。
				
				本章编写的 ActiveX控件有一个问题,这是一个网友提出的,问题如下:
				"你的 18课,用到的 ActiveX控件用 Debug版本生成的控件,在 VC中插入这个控件,调整Interval属性的时候,会出错。只要是 Debug版本在 VC下就会出错。 Release版本却不会?为什么?"
				出错操作步骤如下:
				在 18.7节中建立的 ClockTest程序中的对话框资源上单击鼠标右键,选择【Insert ActiveXCon位01..】,在弹出的 "Insert ActiveX Control"对话框中,找到 "Clock Control". 点击 "OK"按钮,在 ClockTest对话框上插入 "Clωk" Activex控件。在控件上单击鼠标右键,选择【Properties].然后切换到 Control选项卡,修改"Interval"的值,例如改为"勺2α刀"关闭‘"CαI∞kCo侃tωrol Properties"属性对话框,将看到如图 18 .5 7所示的错误信息。
				n阳位 
				700 I ~~~ 
				vc忡深λ详解 
				|IMltiiit,川iC.iif# il.*..:rqr吨[11m町 f二1Ii:.;..;..
				
				
				
				。也粤阳帽,国",F"回l
				尉rq酬..刷俨腼S\I'怕回oft幅皿5tu				For Irtormatioil an hc:wr.t YCXI prOljJo5n can cause..眉饵"帽、 falre, _阳翩翩C++曲阳晒"tal:tollon剧时S.
				仰自遣R由yt。曲也唱。黯啤"*踵阳、)
				
				旦~一组!u
				回 18.57在VC中插入Clock控件后,修改interval属性值出错
				
				笔者对这个问题的回答如下:
				原因是因为当将Clock控件放到VB的 FOIIn上时,该控件的窗口己经创建,也就是说, CClockCtrl类的 OnCreateO方法被执行了,这样就设置了定时器。而在VC的对话框上插入Clock控件时,却没有调用CClockCtrl类的OnCreateO方法,当修改Interval属性时,会调用CClockC创类的OnIntervalChangedO方法,在这个方法中,调用了KillTimer(l),因为定时器根本就没有创建,因此就出现了非法操作。解决办法:用一个变量保存定时器的返回值,然后在OnIntervalChangedO方法中对返回值进行判断。
				注:读者可能会想"为什么没有直接在文章代码中修正",主要是因为这个问题不常发生,而且又容易被忽视,但造成的后果比较严重〈用户可能会对你的控件产品失去信心), 所以单独提出来讲述,也算对笔者自己的一个提醒。
				
				
				、
							

相关资源