⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18.6 环境属性.txt

📁 网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读
💻 TXT
字号:
18.6 环境属性
通过上面的讲解,读者可以发现,在容器中使用 ActiveX控件时,分为两种情况,一种是在设计模式下,通过控件自身的属性表单,或者容器提供的接口改变该控件的属性 :另一种是在运行模式下,通过调用控件的方法来改变其属性。下面让我们实现这样一个特殊的功能 :在设计模式下, Clock控件显示的时间是静止不变的,而只有在运行模式下,
692 I势'如


才让该时间"动起来"。对于控件来说,可以通过一个环境属性: UserMode来判断其当前所处的状态,是处于设计模式下还是运行模式下。利用 COleControl类的成员函数: AmbientUserMode可以得到该环境属性,该函数的原型声明如下所示 : 
BOOL AmbientUserMode( ); 
该函数的返回值是 BOOL类型,如果处于用户模式,即运行模式,返回非 O值;如果是处于设计模式,则返回 O值。因此,在程序中可以根据 AmbientU serMode函数的返回值,判断控件所处的状态。
于是,关闭 VBTest程序,回到 VC++开发环境,在 CClockCtrl类的 OnTimer函数中添加下面如例 18-20所示代码中加灰显示的代码。
例 18-20 

vo工 d CClockCtrl: : OnT工 mer(UINT nIDEvent) 
// TODO: Add your message handler code here and/or call default if(AmbientUserMode()) 工 nvalidateControl() ; COleControl: :OnTimer(nIDEvent) ; 
这时,在 OnTimer函数中,首先调用 AmbientUserMode函数,并对其返回值进行判断,如果其返回非 O值,说明控件是处于运行模式下,就调用 InvalidateControl函数刷新控件,让时间不停地更新显示:如果该函数返回 O值,说明控件是处于设计模式下,就不调用 InvalidateControl函数,于是,控件显示的时间就是静止不动的。
利用 Build命令生成最新的 Clock控件。然后在 VB中打开 VBTest测试程序,这时读者可以发现 Clock控件显示的时间没有随系统时间而更新。因为此时该控件已经判断出当前是处于设计模式下。然后,运行该 VB程序,读者将会看到这时 Clock控件显示的时间又开始不停地更新了。
国际:在编程过程中,有时可以根据控件的环境属性调整控制行为。如
果想得到环境属性,可以利用Ambient开头的函数去获取。读者可以在 MSDN中查看这些函数的用法。
同样地,可以在 ActiveX Control Test Container容器测试最新的 Clock控件。插入 Clock控件后,这时是在设计模式下,可以看到 Clock控件显示的时间是静止不动的。如果想要切换到运行模式,可以将【 Options】菜单下的【 Design Mode】菜单项前面的复选标记取消,这时即变成运行模式,可以看到 Clock控件显示的时间随系统时间而变化了。我们可以利用【 Options飞Design Mode】菜单项在设计模式和运行模式之间切换。
经过测试后,就可以生成一个发行版的 ActiveX控件: Clock了。方法是在 VC++开发环境打开 Clock工程,然后选择【 Build\Set Active Configuration...】菜单项,从弹出的对话框中选择 "Clock -Win32 Release "一项,单击【 OK】按钮,然后重新利用 Bui1d命令生成 Clock控件程序即可。
" I 693 
第18章 ActiveX控件
通常,我们都是在Win32 Debug模式下,也就是在调试模式下进行开发。在此模式下有助于我们发现程序编写过程中发生的一些错误〈例如非法访问错误),还可以帮助我们调试程序、跟踪程序,进而排查错误。但是,在调试方式下生成的可执行文件,或者控件文件,往往都比较大,因为在这些文件中包含了一些调试信息。在开发完成之后,可以选择Win32 Release方式,重新生成可执行文件,或者控件文件。在发行模式下进行编译时, VC编译器会对程序作一些优化,例如,在代码生成上和执行速度上作一些优化,同时,生成的可执行文件或者控件文件都比较小,因为其中没有再包含调试信息了。 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -