📄 9917.txt
字号:
在该类的构造函数中赋值为true。在OnDraw()函数里加上判断语句:当x为true时执
行要求首先运行的代码,然后将x置为false;当x为false时什么也不做。这样就可
以保证特定的代码在窗口出现时自动运行而且只执行一次。
具体的程序片段如下:
(CTestView.h 文 件 中)
class CTestView : public CView
{
public:
BOOL x;
...... // 其 他 的 语 句
}
(CTestView.cpp 文 件 中)
CTestView::CTestView()
{
// add construction code here
x=TRUE;
}
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
if(x==TRUE ){
x=FALSE;
......// 要 求 首 先 运 行 的 代 码
}
}
***********************************************************
利用PowerBuilder调用拨号网络
----在当前MIS系统的开发过程中,怎样利用调制解调器和电话线进行远
程通讯是开发者经常遇到的问题,Windows95系统中的“拨号网络”使开
发者和用户能够在Windows95系统中利用调制解调器和电话线建立与远程
WindowsNT系统或Internet的连接。这里介绍怎样在Windows95系统中利
用PowerBuilder前端开发工具调用拨号网络。
----在Windows95系统桌面底部的任务栏窗口上点击鼠标右键,选择“属
性”,出现“任务栏属性”对话框,在此对话框中选择“开始菜单程序”
标签,并点击“高级”按钮,在“StartMenu\Programs\附件”子目录下
有“拨号网络”项。移动鼠标到此“拨号网络”上,并点击鼠标右键,
选择“属性”项,出现“拨号网络属性”窗口,在此窗口中选择“快捷
方式”标签,“目标”项中的内容为:
----C:\WINDOWS\EXPLORER.EXE::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::
{992CFFA0-F557-101A-88EC-00DD010CCC48}
----将此内容用快捷键Ctrl+C复制到剪贴板上。
----打开PowerBuilder开发系统,利用剪贴板中的内容在菜单“建立远程
连接”的脚本中键入:
----run(“C:\WINDOWS\EXPLORER.EXE::{20D04FE0-3AEA-1069-A2D8-
08002B30309D}\::{992CFFA0-F557-101A-88EC-00DD010CCC48}”)
----运行该应用程序,点击菜单项“建立远程连接”,出现“拨号网络”
窗口,在此窗口中点击预先已建立的连接,启动调制解调器进行拨号,便
能达到访问网络的目的。
***********************************************************
在Visual FoxPro 5.0中激活Internet Explorer
目前,Internet/ Intranet技术已日趋成熟,构造企业级Intranet已被越来越多的
企业所采纳。Intranet是采用Internet技术构造企业内联网络,它既可以实现企业
内部的信息共享,也可以通过Internet与外部世界交流信息,具有很大的灵活性。
当前,很多应用系统的开发建构在Intranet/Web结构上,这使得客户端的用户能够
通过浏览器查询或访问Web服务器端的数据库、浏览HTML页面。浏览器是与用户相
关的界面,虽然Web服务器后端应用程序与浏览器没有直接的交互,应用程序却通
过回送一个完整的HTML页面进行显示,以一种非交互的方式提供了界面。
Microsoft正在将Web浏览器界面直接并入将来的Windows操作系统版本中。在
Internet Explorer 4.0中,Web浏览器与其它用于文件浏览及显示桌面应用程序的
界面部件之间没有什么差别。浏览器正在成为无所不在的应用程序,它提供了漫游
Web、局域网、甚至是用户自己的计算机和应用程序所需的全部功能。
Visual FoxPro 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。
Visual FoxPro的集成化的开发环境不但拥有功能强大的面向对象程序设计工具以
及客户/服务器能力,而且支持 OLE 及 ActiveX。如果你在系统中安装了Internet
Explorer,而且它是缺省的浏览器,用下面的方法,就能通过Visual Foxpro控制
Web浏览器访问Web站点。
建立一个Visual Foxpro表单,其中,启动Internet Explorer的代码为:
oie = CreateObject("InternetExplorer.Application"),
CreateObject函数从一个OLE应用中创建一个对象。关闭Internet Explorer
的代码为:
If Type('oie') = "O"
oie.Quit
Release oie
EndIf
Oie类的主要成员函数为:oie.Navigate(String URL)联向URL指定的某个接点;
oie.GoHome与Internet Explorer的主页对应;oie.GoSearch与Internet Explorer
的搜索对应;oie.GoBack与Internet Explorer的后退对应;oie.GoForward与Internet
Explorer的前进对应。
Oie类的主要成员变量为:oie.Top,oie.Left窗口左上角坐标;oie.Height窗口高度;
oie.Width窗口宽度;oie.StatusText窗口状态条显示信息;oie.StatusBar窗口是否
有状态条;oie.FullScreen窗口是否全屏显示;oie.ToolBar窗口是否有工具条;
oie.Visible窗口是否可见;oie.MenuBar窗口是否有菜单。通过设置这些成员变量,
可以控制Internet Explorer的窗口大小、位置及各种状态。
这样,我们就可以生成一个在Visual FoxPro中激活并控制Internet Explorer的程序,
该程序可以作浏览器用。在Visual Foxpro 5.0及Internet Explorer 4.0环境下实现。
***********************************************************
VFP中的表单和菜单为何一闪而过?
----我在VisualFoxpro3.0中用表单设计器和菜单设计器设计的表单和菜单,
在Foxpro下运行正常,但编译成.exe文件后,运行时却为何一闪而过?
----这个问题涉及到VFP中的事件循环控制。事件循环控制的目的是为了等
待用户进行操作。
----在VFP的应用程序中,最好通过一个主程序来控制整个应用程序。在主
程序中先进行系统初始化,然后使用命令readevents启动事件循环,应用程
序将处在所有最后显示的用户界面元素控制之下。比如显示表单设计器设计
的表单formone.scx,可在主程序中执行下面的两个命令:
doformformone.scx
readevents
----另一个命令clearevents用于停止事件处理,在它之后的程序段将继续执
行。但对于表单和菜单之类需挂起的处理过程,如果主文件中没有包含
readevents或等价的命令,在开发环境下是可以正确运行的,但编译成.exe
文件后,处理过程将显示片刻,然后立即退出,这就是“一闪而过”的原因。
***********************************************************
C++与Java语言及其开发工具
中科院软件所网络与数据库研究室 廖卫东
中科院化冶所计算机化学开放实验室 李业民
一谈到Java,人们马上会想起一种类似于C和C++的、适用于分布环境的面向对象
编程语言,想到这种语言的简单、稳定、安全、与体系结构无关、可移植、可解
释、高性能、多线索和动态性等特征。这些都是Java作为一种程序设计语言的
主要特征。但是,如果希望更好地理解Java语言,最好的方法是把这种语言与其
同类型的语言相比较。既然Java类似于C++ ,把它同C++进行一番比较则是顺理
成章的事情。
一、Java语言
Java是由Sun公司的一个技术小组研制出来的。在实现Java语言的过程中,小组的
技术人员很快就意识到:C++无法成为一种完全面向对象的、网络化的开发语言。
C++是通过给原先的C语言增加面向对象功能而开发出来的,因此,它存在着先天不
足。这主要体现在C++种类繁多,功能大量冗余,同时又没有任何一种C++编译器能
够支持它的全部功能。鉴于这种情况,Sun公司的技术人员决定不扩充C++,而开发
一种全新的计算机语言(Java的前身Oak)。但是,C++已经成了大多数编程人员所
熟练掌握的语言,Java的设计显然不能无视这个现实。如果Java和C++之间的差别
过大,那么程序员们在学会这种语言的过程中无疑要花费大量的时间和精力。因
此,Java保留了尽可能多的C++风格。
Java是完全面向对象的,这和C++不尽相同。尽管C++被认为是一种面向对象的语
言,但它仍然支持过程式程序设计风格。Java则不然,它要求程序员采用完全面向
对象的编程技术 ,从而消除了由于混用两种相同的编程风格而导致的种种问题。
另一方面,Java的"外观"和 "感觉"和C++又有着很多相似之处。Java消除了C和C++
中的冗余以及所有过程式的编程风格 ,并且不再支持指针数据类型,同时增加了数
组的自动边界检查和自动内存垃圾搜集,并且把数组封装到类结构内,从而有助于
开发分布计算环境下的应用程序。
不过,Java之所以能够成为一种理想的编程语言,最重要的原因还在于其"内嵌"的
内存管理和多线索功能。C++语言支持程序员编写一些非常低级的程序,从而能够
访问机器硬件 ,并操纵实际内存地址。但这些是以牺牲可移植性为代价的,因为
这时每个程序都是针对某种具体硬件环境的。而Java却是通过提供各种边界检查
和内存管理来确保代码的可移植性 ,同时,还提供了内嵌的多线索功能,使类似于
内存垃圾搜集一类的操作可以在后台进行,从而保证了较高的执行效率。
Java语言能够具有这些优点,主要是因为它是作为一种全新的语言而设计的。如果
仅仅是扩充C++,Java将无法避免C++中遗留的大量过程式特性,其解释器的规模将
急剧增长,从而降低了系统的总体性能,代码的可移植性和稳定性的实现即使是可
能的,也将非常困难。总之,Java的这些特性,为其成为下一代编程语言奠定了良好
的基础。
1.Java 的面向对象特征
面向对象技术的关键在于封装、继承和动态联编,下面就谈谈Java是如何支持这些
关键特性的。
面向对象技术的基本单位是对象,对象在Java中称为类(Class)。一个类实际上就
是一段用于实现对象行为的代码,它是提供封装性的根本所在。也就是说,对象及
其相关的所有操作均被封装到一个类中。
所有的对象都有一个状态。类也有状态,以"实例变量"表示。实例变量由相应的类
进行控制,除某些特殊情况外其它任何类都无法访问这些变量。实例变量通过方法
(method)进行访问。方法相当于过程式语言中的函数,它是一个可多次调用的代码
段。程序员必须通过调用方法来实现对类的控制,即改变类的状态,而且只能实现
类的方法所允许的操作。这就是面向对象技术的工作原理。
当然,在个别情况下(对某些面向对象的语言而言),编程人员也可以直接访问实例
变量 ,但这并不是一个值得推荐的做法,因为它违背了面向对象的初衷。
面向对象编程的优点主要在于代码的可重用性。当需要进行某些重复性操作时,编
程人员不必反复地重写相同的代码段,而只需创建对象的多个实例即可。因为编程
人员既不需要了解对象是如何创建的,也不用知道对象内部的工作机理,需要知道
的只是对象方法的调用机制,其余的工作将由对象所属的类进行处理。在Java中,
程序员可以编写完成各种功能的类,发布编译之后的代码,并且只需要告诉用户如
何控制这些类即可。
Java通过类来实现对象,并且提供了类的多种用法。类可以作为各对象实例的一个
模板。为创建类的新实例,可以调用其构造函数,它是每当创建类的一份新的拷贝
时都必须调用的一个特殊方法。当一个类的所有程序都已经结束运行,或者Java觉
得不再需要调用该类时 (比方说应用程序已经结束),必须调用这个类的终结函数
(finalize),以进行一些必要的清除工作。当然,Java的终结函数和C++中的析构函
数会有所差别,因为Java可进行自动垃圾清除。
在Java中,对变量和方法的访问控制是通过访问修饰符来实现的。Java定义了4种
访问级别:公共(public)、受保护(protected)、私有(private)和友好(friendly)。
公共类型的方法及变量可从任意类进行访问;受保护类型的方法及变量只能从当前
类及其子类访问;私有类型的方法及变量则只能从当前类访问。如果未给出这三种
类型中任意一种的显式说明 ,表明相应的方法或变量属于"友好"类型,从而可由属
于同一"包"(package)内的所有类进行访问。在Java内,"包"是一个单独的编译单
位,它是具有某种共性的类所组成的集合。通过定义包这个单位,可实现相关对象
之间的相互访问,同时把这些对象与包之外的其它对象隔离。
面向对象的编程机制是Java的一个极为重要的方面。在Java内,如果不创建新类,
就无法创建应用程序。Java定义了一个特殊的超类Object,用户创建的类都是Object
的子类。J ava程序既可在解释器内也可在浏览器内运行,但无论采用哪种方式,都
必须先创建一个类实例,然后才能提交运行。此外,利用继承机制,用户还可充分利
用各种超类提供的功能。
2. 与C++的差别
尽管C++程序员可以相对容易地掌握Java编程,但他们仍然必须克服从C++带来的一
些旧习惯。Java取消了C++中的如下特性或功能:
·结构或指针 ·#define语句
·指针 ·多重继承
·独立的函数 ·GOTO语句
·操作符重载 ·自动类型转换
Java不支持结构和指针,而且取消了C++中的#define或#typedef语句和头文件。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -