61阅读

vb6.0教程-VB6.0图文实例教程

发布时间:2017-12-14 所属栏目:flash8.0实例教程

一 : VB6.0图文实例教程

VB教程:序言-不再游戏 我们需要什么

我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。[www.61k.com]编程吗,在以前如果你对电脑还是一个门外汉,那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。

编程是需要天赋的,你必须在大脑中对整个程序有一个清晰的轮廓,一个高效的流程,这并不是每个人都能做到的,你必须思之慎之,这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后,可以确切的说它开发了人们的更多天赋,并不局限于那些头脑异常清晰的人,每一个人都可以发现自己也可以编出一些从前不敢问津的程序,想象力的充分发挥才是第四代语言的精粹。 Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在

vb6.0教程 VB6.0图文实例教程

不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。[www.61k.com)对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但Delphi又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。

VB的诞生

VB的出现可以说是Microsoft Windows的日渐成熟的必然产物。Microsoft Windows为程序员和最终用户提供了一个共同的人机界面。对用户,Windows提供了一个图形鼠标的操作环境,该环境对所有的应用程序都一样;对于程序员,Windows提供了一组预定义工具----称之为Microsoft Windows 的软件开发工具箱(SDK),该工具能使程序员建立一个与Windows界面相同的应用程序,而且,程序员不必关心最终用户的硬件配臵情况。在这一开发环境中,程序员唯一困难的是Microsoft SDK提供了六百多个函数和与其一致的事件驱动(event-driven)编程技术。两种新方法的交叉使众多的程序员重新陷入困境,程序员不仅要掌握程序驱动编程技术和六百多个函数的功能,而且还得用C语言描述这些问题。因此一般情况下,程序员首先要掌握C程序设计技术,而后再开始学习SDK。这样的条件下就要求在Microsoft多任务环境下出现一种操作方便,使用简单的新工具----Visual Basic由此诞生。

何为可视

vb6.0教程 VB6.0图文实例教程

英文Visual的意思是?视觉的?,?可视的Baisc?这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做?可视?,你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤。(www.61k.com]在VB中引入了控件的概念,在Windows中控件的身影无处不在,各种各样的按钮、文本框、无线钮,都是控件的种类,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法。这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的。

我的希望:

我在学习VB的过程中也曾遇到了许多困难,而且用的参考书大都来自译文,毕竟美国人和中国人的表达方式有所不同。这也造成了理解上的困难,所以我想为什么我不能写一个给中国人看到VB教程呢,于是我这么做了。也曾经在杂志上发表过几篇用VB制作小程序的文章,但受杂志的限制(篇幅、内容等等)(我得听小编的),总没有一个机会系统的介绍一下VB,造成了小小的遗憾。不过,我自己的主页建好后,终于这个愿望可以实现了,利用HTML可以方便的把文字与图片结合起来,不失为一个教学良所,也希望能够得到大家的支持。 希望?VB教程?能给你我一个互相学习的机会,如果你能从中获益那将是我最大的快乐,那时你一定会发现编程比游戏有趣得多。:)

vb6.0教程 VB6.0图文实例教程

VB教程:第一章-Hello World!

文章来源:vb大世界

没学过编程的人常常会问,编程难不难,这个问题很

难回答。[www.61k.com)难,的确很难,要编一个好的程序尤其是这样,并且有些程序还要用到一些其他专业的知识,比如说一个图形处理程序,就要对图像的格式有所了解,甚至一些美术知识;但编程也很容易,就拿VB来说,编一个自娱自乐的小工具还是一件相当惬意的事情呢,当然它没法完全代替人工,譬如说完成你的家庭作业、向学校发射导弹……

作为第四代计算机语言,VB的特点是显而易见的。因为是?可视的?所以我们不妨先看看VB的界面(图1_1)(我用的是VB4.0 32位版),很容易可以看到,屏幕上有五个窗口,(1)是菜单栏;

(2)是工具箱(Tools Box),里面是VB所需的控件;(3)是VB程序要设计的窗体(Form);(4)控件及窗体的属性(Properties),在VB中每一个控件都有其自己的属性,比如文本框有Text属性,而任何一个控件都有一个自己唯一的名字,这使得我们无需编程就可以完成部分编程的工作;(5)是VB的文件控制窗口,VB的每一个程序称为一个项目(Project),一个项目文件里往往包括以下两种文件,窗体(Form)文件和模块(Bas)文件,当然还有Class文件,这些文件组成一个完整的程序,而项目文件(Vbp)则用来描述程序所包含的内容。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

实际上,我一直认为学习的最好方法就是实际操作一下,好,下面我们就来看一个最简单的程序,和所有的编程教科书一样,我们把第一个程序称为?Hello,world!?。[www.61k.com)

首先,我们先来熟悉一下窗体。如果你用过Win95附件所带的画图板的话,那么你一定会很快熟悉VB的窗体设计方法,用鼠标单击一下工具箱中的任何一个控件,然后在窗体上任意拖动鼠标,你就会得到一个所需的控件;当然还有其他的方法得到控件,你可以在工具箱上双击得到一个控件;或是按住Ctrl键,再单击所需控件,重复第一次的步骤,你会发现,不用再回去点击工具箱了,点右键可以恢复鼠标指针,这样对于重复画同一个控件尤其有用。

对于我们的第一个小程序,知道这些就已经足够了。现在你可以在我们的窗体上画如下控件一个图片框(Picture Box),用来显

vb6.0教程 VB6.0图文实例教程

示图画,每一个控件建立的时候,系统都会给它设一个默认的名字(Name),这个PictureBox的名字就叫做Picture1,为了方便起见,我们以后的控件都使用缺省的名称。[www.61k.com)选定Picture1,在左边的属性窗口中找到Picture属性,单击会出现,点击为Picture1选一个图像文件,VB支持的图像文件有BitMap、WMF、ICO三种,微软为用户提供了一套图标文件,存放在VB目录的Icons目录下,选择Icons\misc\face01.ico文件,这样图标就被装入了Picture1。再选择Pictrue1的Autosize属性,设为1-True,则会发现Picture1以变成和图像一样大了;把BorderStyle定为0-None,去掉图片边框。用同样的方法再添加两个图片框:Picture2(Picture:face02.ico),Picture3(Picture:face03.ico)。

图片框完成了,第二步,建立三个无线钮(Option Button),由于它象收音机的无线电按钮而得名),把它们的标签名属性(Caption)分别定为?悲哀?,?高兴?,?没治了?,放臵成图1_2的样子。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

最后我们还需要三个文本框(Text Box),分别把它们的Text属性设为??(空字符串),程序的最后界面如图1_3,这样按下菜单窗口的运行按钮,运行一下程序,还可以吧,不过现在程序还无法工作,就算是VB也不能免俗,还必须输入代码才能使程序运作。(www.61k.com)

vb6.0教程 VB6.0图文实例教程

VB是一门典型的面向对象编程的语言,它的整个程序都是由事件驱动的。那么,什么是事件呢?其实,我们的生活中充满了各式各样的事件,比如说?闯红灯?这个事件的发生会导致被警察追杀、走路撞到电线杆时会痛。上面的例子虽然有些滑稽,但它可以清楚的解释事件的含义,就象你马上就能体会到的在什么地方单击鼠标时会发生什么,按下键盘时会发生什么,这就是事件,而事件就是这么容易。 要进入VB的代码设计区,只需在需要的控件或窗体上双击鼠标即可得到这样的窗口。如图1_4,每一个VB程序都由若干小程序组成,这使得用VB编程更加容易,这些小程序,分为?过程?(Proc

vb6.0教程 VB6.0图文实例教程

edure)和?函数?(Function),二者都可以传递参数,所不同的是函数有一个返回值,而过程没有,仅此而已。[www.61k.com)

vb6.0教程 VB6.0图文实例教程

双击窗体的任何一个部分,将出现一个空的过程:?Form_Load

()?,这是一个非常重要的过程,它所驱动的事件就是该窗体被加载的事件,打个比方,就象计算机启动时的批处理程序(Autoexec.bat)。 这个程序里我们要对控件进行一些设臵。我们刚才也曾对控件进行设臵,但那是在程序设臵中进行的,有时我们也需要在程序中改变某些控件的属性,通过程序代码。VB中规定,一个控件属性的访问方法:名称.属性,于是我们对本程序的控件进行如下设臵: Private Sub Form_Load()

Picture1.Visible = False

Picture2.Visible = False

Picture3.Visible = False

Text1.Visible = False

vb6.0教程 VB6.0图文实例教程

Text2.Visible = False

Text3.Visible = False

End Sub

Private表示此过程是局部的,Sub表示子过程的开始,与之相对的是End Sub表示过程的结束,Visible属性表示控件的可见性,这个属性的值有两个True和False。[www.61k.com]

注意:

VB里对大小写是不加区分的,而且,已定义的名称,以后再用到时,系统会自动把它变成相应的大写或小写。

小知识:

1.VB里的对变量及常量的规矩。

变量一般为Abc的格式,常量为ABC,另外这些变量和常量名不得同VB内的关键字相同,也不可以使用一些特殊符号,这些我们将在以后介绍,注意在学习中养成好习惯,使程序便于自己和别人的浏览。

2.程序书写的窍门:

不要真的一句一句把程序打完,利用快捷键:拷贝Ctrl+C,剪切Ctrl+T,粘贴Ctrl+P。

vb6.0教程 VB6.0图文实例教程

按下F5,运行一下程序,现在发现只剩下无线钮了。[www.61k.com]如图1_5。

vb6.0教程 VB6.0图文实例教程

Private Sub Form_Load()

Picture1.Visible = False

Picture2.Visible = False

Picture3.Visible = False

Text1.Visible = False

Text2.Visible = False

Text3.Visible = False

Option4.Left = -2000

Option4.Value = True

End Sub

vb6.0教程 VB6.0图文实例教程

Left属性表示控件离窗体左边框的距离,设臵为-2000,则在窗体内不会看到这个控件,并使之Value=True。[www.61k.com)再运行程序,一切如愿,如图1_6.

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

注意:为什么不用Option4.Visible=False?

因为,一旦设臵无线钮为不可见,那么再使它的Value为真是没有意义的,不信自己试试。

下面我们可以继续进行了。在刚才的代码窗口里,将Object选择为Option1,Proc选择为Click,即得到一个Option1_Click的过程。代码如下:

Private Sub Option1_Click()

vb6.0教程 VB6.0图文实例教程

Picture1.Visible = True

Picture2.Visible = False

Picture3.Visible = False

Text1.Visible = True

Text2.Visible = False

Text3.Visible = False

Text1.Text = "再见,残酷的世界。[www.61k.com)" End Sub

相同的建立Option2_Click和Option2_Click: Private Sub Option2_Click()

Picture2.Visible = True

Picture1.Visible = False

Picture3.Visible = False

Text2.Visible = True

Text1.Visible = False

Text3.Visible = False

Text2.Text = "今天心情不错。"

End Sub

Private Sub Option3_Click()

vb6.0教程 VB6.0图文实例教程

Picture3.Visible = True

Picture2.Visible = False

Picture1.Visible = False

Text3.Visible = True

Text2.Visible = False

Text1.Visible = False

Text3.Text = "Hello,World。[www.61k.com)"

End Sub

好,我们的开山之作完成了!按下F5,玩一下吧。这个程序虽然简单,但也用到了许多基本知识,你开始感兴趣了吗?

vb6.0教程 VB6.0图文实例教程

^_^

VB教程:第二章

vb6.0教程 VB6.0图文实例教程

-事件、属性及数据类型

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

文章来源:vb

vb6.0教程 VB6.0图文实例教程

大世界

以后两章可能会比较枯燥,但不可否认也很重要,所以为了学好VB,我们一定

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

要打好基础才行。[www.61k.com]

一、事件

通过上一章的例子,你可能对?面向对象的编程?已经有了一定了解,它是由事件驱动的,对于不同的对象,所能感应到的事件也会不同,譬如说当你把鼠标移进某一区域时就会触发MouseMove事件,这很直观,也容易理解,但也有些事件比较抽象,下面我来对一般的事件进行一下解释。

1. 窗体和图象框类事件

Paint事件:当某一对象在屏幕中被移动,改变尺寸或清除后,程序会自动调用Paint事件。注意:当对象的AutoDraw属性为True(-1)时,程序不会调用Paint事件。

Resize事件:当对象的大小改变时触发Resize事件。

Load事件:仅适用于窗体对象,当窗体被装载时运行。

Unload事件:仅适用于窗体对象,当窗体被卸载时运行。

2.当前光标(Focus)事件

GotFocus事件:当光标聚焦于该对象时发生事件。

LostFocus事件:当光标离开该对象时发生事件。

注意:Focus英文为?焦点?、?聚焦?之意,最直观的例子是,比如有两个窗体,互相有一部分遮盖,当你点下面的窗体时,它就会全部显示出来,这时它处在被激活的状态,并且标题条变成蓝色,这就是GotFocus事件,而相反,另外一个窗体被遮盖,并且标题条变灰,称为LostFocus事件。上面所说的?光标?并非指鼠标指针。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

3.鼠标操作事件

Click事件:鼠标单击对象。(www.61k.com)

DbClick事件:鼠标双击事件。

MouseDown、MouseUp属性:按下/放开鼠标键事件。

MouseMove事件:鼠标移动事件。

DragDrop事件:拖放事件,相当于MouseDown、MouseMove和MouseUp的组合。 DragOver事件:鼠标在拖放过程中就会产生DragOver事件。

4.键盘操作属性

KeyDown、KeyUp事件:按键的按下/放开事件。

KeyPress事件:按键事件。

5.改变控制项事件

Change事件:当对象的内容发生改变时,触发Change事件。最典型的例子是文本框(TextBox)。

DropDown事件:下弹事件,仅用于组合框(ComboBox)对象。

PathChange事件:路径改变事件,仅用于文件列表框(FileBox)对象。

6.其他事件

Timer事件:仅用于计时器,每隔一段时间被触发一次。

二、属性

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

每个对象都有它的属性,并且?Name?属性是共有的,有了?Name?属性才可以在程序中进行调用。(www.61k.com]对于属性,可以在窗体的布局操作中完成,也可以在程序运行中改变,这取决你的需要,但有些属性是只读的,它只能在控件布局时改变。我将在以后的实例中具体介绍各个属性的作用。

三、数据类型

学过编程的人都知道大多数的计算机语言都规定了各自的数据类型,VB也不例外。其实,在一个最简单的程序中数据类型是可以不作规定的,也就是说,变量可以使用各种类型,但是在一个复杂的程序里,这样做就很危险,因为很可能给同一个变量赋予了不同的类型,而导致程序出错。所以,为了程序的严谨和便于查看,正确的定义数据类型是必要的。定义数据的另一个原因是,不同的数据占用不同的内存数量,譬如整型(Interger)数据占2字节,而长整型数据占4个字节,定义合适的数据类型,不管你相信不相信,它可以节省内存!

1. VB常用的数据类型有:整型(Integer,表示-32768至32767之间的整数)、长整型(Long,表示-2,147,483,648至2,147,483,647之间的整数)、实型(Single,表示-3.37E+38至3.37E+38之间的实数)、双精度实型(Double,表示-1.67E+308至1.67E+308之间的实数),字符(String,每个字符占一字节,可以储存0~65,535个字符),布尔(Boolean,只有两个值True/-1,或False/0)。

2. 数据类型的定义方法:

定义变量最简单的方法是用?Dim?关键字,它的语法:

Dim 【变量名】As 【数据类型】

vb6.0教程 VB6.0图文实例教程

Dim Index% 等价于 Dim Index As Integer

对于常量的定义用Const定义,如:Const COLOR=255。(www.61k.com)

为了在程序中便于查阅,我们对变量和常量的写法进行规定,变量一般用小写方式,常量则全部大写。

注意:使用常量的好处,对于程序中经常出现的数值,应设常量等于它,这样一是书写方便,其二,如果要改变该数值,只需改变定义常量的语句值,而不需改变每个语句,提高了效率。 数组的定义类似于变量定义,所不同的是数组需要指定数组中的元素个数,例如: Dim IntegerArray(99) As Integer

这个数组中包含100个元素,脚标从0到99。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

也可以指定脚标的起始值,例如:

Dim IntegerArray(2 to 10) As Integer

这个数组含有九个元素,脚标从2到10。(www.61k.com]

还可以定义多维数组:

Dim ThreeD(4,2 to 5,3 to 6) As Integer

上例定义了一个三维数组(4×4×4)。

记录的定义

记录定义是把控制权交给用户的方法,它让用户可以定义自己的数据类型,它使用关键字?Type?,方法是:

Type 【数据类型标识符】

<域名> As <数据类型>

<域名> As <数据类型>

<域名> As <数据类型>

…………………………

End Type

例如,定义一个地址数据:

Type Address

vb6.0教程 VB6.0图文实例教程

Street As String

vb6.0教程 VB6.0图文实例教程

ZipCode As String

vb6.0教程 VB6.0图文实例教程

Phone As String

vb6.0教程 VB6.0图文实例教程

End Type 这个地址数据里包括三个属性,街区、邮政编码和电话,可以把某数据定义成此类型:

vb6.0教程 VB6.0图文实例教程

Dim MyHome As Address

要调用或改变?MyHome?的值时,类似于对对象的属性的操作:

变量名.域名=?……?

为了简化书写重复的部分,可以用关键字?With?:

With MyHome

.Street=?阜成路?

.ZipCode=?100037?

.Phone=?12345678?

End With

VB教程:第三章-VB语言

文章来源:vb大世界

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

一、VB与Basic

VB之所以叫做?Visual Basic?就是因为它使用了Basic语言作为代码,

所以它们之间有着千丝万缕的关系,如果学过Basic的话,看到VB的程

序结构会感到很亲切。(www.61k.com]但VB作为新生物,也超越了Basic的限制,有了

许多自己的特点:

VB建立了一种新的变量类型――货币型变量,通过使用仅带有二位小数的

货币变量,就能避免因使用实型变量而带来的数值积累误差问题。

VB在调用函数(Function)时,必须在函数名后跟一对括号。

VB对白兰地使用范围重新做了规范,在Basic里把隐含变量都当作全局变

量,而在VB里对隐含变量都当作局部变量。

VB里的说明语句(Declare),仅支持动态链结库(DLL)的子程序和无变

量函数。

使用数组,必须事先用Dim或Redim进行定义。

二、注释语句

在使用注释语句之前必须先了解注释的作用,注释不仅仅是对程序的解释,有时它对于程序的调试也非常有用,譬如说可以利用注释屏蔽一条语句以观察变化,发现问题和错误。以后注释语句将是我们在编程里最经常用到的语句之一。

在VB里,注释语句有两种,一种是用?Rem?关键字,这跟DOS里的批处理文件的用法一样,还有一种是利用单引号?’?,例如:

‘Dim a As String 与

vb6.0教程 VB6.0图文实例教程

Rem Dim a As String 的作用是一致的。[www.61k.com]

三、长语句的分行

在比较早的版本中,因为没有象C等语言用?;?隔开语句与语句,VB的语句是必须写在一行里的,不过后来版本的VB里如许用分行符?_?把一个长语句分成若干行来存放。

四、条件语句

如果你学过任何一种编程的话,都会知道在程序里控制其流程的有两种语句,条件与循环,VB自然也不例外,其实不管哪种语言,条件和循环的样子都差不多,只不过各有各的规矩罢了。 在条件语句里,我们先来学习?If……Then……?语句。

它的一般语法是:

If <条件> Then

<语句>

<语句>

………

End If

与C 语言不同,VB的条件语句更符合英语的语法,如果Then后面所跟的语句只有一条,可以写成:

If <条件> Then <语句>

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

Case <情况3>

……

……

……

Case Else

……

End Select

例如:

Select Case a%

Case 1

Print ?a=1?

Case 2

Print ?a=2?

Case Else

Print ?a does not equal to 1 or 2.?

End Select

五、循环语句

循环结构是计算机语言里一种重要的结构,它的应用广泛,最简单的例子是累加器的作用,还可以用于穷举法,更直观的例子是把某件事重复指定的次数,这样就不用把要重复的语句输入

vb6.0教程 VB6.0图文实例教程

多次,而通过循环结构完成,非常方便。(www.61k.com)

C语言里有一个?for?循环语句,VB里也有?For?关键字,作用也差不多,只是VB的?For?语句更容易理解。它的格式是:

For <循环变量>=<初赋值> To <终值> [Step <步长>]

……

……

Next <循环变量>

在默认情况下,Step被设为?1?,可以省略,Step也可以设为负值,例如:

Dim a=0

For I=1 To 10

a=a+I

Next I

这是一个最简单的累加器的例子,把1到10累加在一起,然后赋值给?a?这样的效果和上面是一样的,只不过是倒着加罢了,请看:

Dim a=0

For I=10 To 1 Step –1

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

a=a+I

Next I

While语句也是一个很常用的循环语句,它的形式很多。(www.61k.com]

Do While …… Loop语句

While …… Wend 语句

Do …… Loop While

While后面都跟逻辑条件判断,?Do While …… Loop语句?和?While …… Wend 语句?作用相似,都是先判断While后面的条件是否为?真?,如果为?真?则执行里面的语句,如果为?假?,则退出循环,循环直至条件为?假?终止。?Do …… Loop While ?与前两者的区别在于,它不管条件的真假,都会先执行?Do?后面的语句,也就是说,它至少执行语句一次。

与While用法相似的还有Until语句,它是直至条件为真则终止循环,句式把While上述三个语句的While换成Until即可,但是因为容易记混,所以我建议只用While即可。Until <条件>可以相当于While Not <条件>。

For循环和Whlie循环应当根据适当的环境使用,它们有时也可替换。

六、运算操作

数学运算

+:加法运算,也适合于字符串的之间的合并运算。

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

VB教程:第四章-按钮

文章来源:vb大世界

从本章开始我们将正式进入VB的编程世界,但这还仅

仅是个开端,要编出功能强大的软件,还要学很多东西,那就要看以

后的VB高级教程了,我也得努力学啊!

vb6.0教程 VB6.0图文实例教程

按钮是我们在Windows操作见到最多的控件,它们有着各种各样的功能:?确认?、?取消?、?下一步?等等,这些都是按钮的表现,另外还有很多图形话的按钮,其实它们并没什么不同,所有的按钮都是通过单击(click)事件实现的,只不过是在外表不同罢了。[www.61k.com)下面就让我们建立一个最简单的按钮,双击工具箱的CommandButton,将在窗体上建立一个形如图4-1的按钮,它的缺省名(Name属性)为Command1,我们可以把它改名为cmdExit,把Caption属性设为?退出?,然后双击,按钮填写代码:

Private Sub cmdExit_Click()

Unload Me

End Sub

vb6.0教程 VB6.0图文实例教程

按下F5或者工具条上的播放按钮,运行程序。图4-2当你按下退出按钮的时候,就会自动退出程序,原因是当你单击按钮时激活了它的Click事件,执行?Unload Me?语句,使得窗体被卸载。

vb6.0教程 VB6.0图文实例教程

上面举了一个比较简单的例子,下面的例子稍微复杂些:

新建窗体,控件布局如图4-3所示,包括一个List控件,一个Text控件和两个按钮(Command1和Command2),(比较简单的程序我们都采用缺省名),对它们属性做如下修改:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

把使用Button1的Enabled属性设为False(假),是使程序在初始时,无法单击Command1。[www.61k.com)按F5,运行程序,图4-4,复原按钮成为

灰色,不可选。

vb6.0教程 VB6.0图文实例教程

当然现在程序还什么也不能做,下面我们在程序中添加代码: 首先在General里声明全局变量:

Dim StoreString As String '用来储存字符串

※注意:为什么用全局变量?

VB里每一个小过程都相当于一个程序,程序里的变量称为局部变量,是只能在程序内部使用的,而当程序调用结束后,由于从内存中被清除,所以变量储存的值也就消失了,这里的全局变量是用来在过程中传递字符串。

接着填写以下代码:

vb6.0教程 VB6.0图文实例教程

Private Sub Command1_Click()

Text1.Text = StoreString

Command1.Enabled = False

End Sub

Private Sub Command2_Click()

StoreString = Text1.Text

Text1.Text = "" '清除

Command1.Enabled = True

End Sub

运行程序,如图4-5。[www.61k.com)按下?清除?,文本框被清除,按下?复原?,文本有被恢复,许多程序中的Undo/Redo就是利用这个原理实现的,现在知道为什么内存越多越好了吧。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

我们在把程序修改一下,把Button2删除,Button1的Enabled属性改为True,Caption改为?清除?,填写代码:

Private Sub Command1_Click()

If Command1.Caption = "清除" Then

StoreString = Text1.Text

Text1.Text = "" '清除

Command1.Caption = "复原"

Else

Text1.Text = StoreString

Command1.Caption = "清除"

End If

End Sub

同样可以上面的功能,但是却少用了一个控件,控件使用少的程序启动会快些。[www.61k.com)

下面的例子要更加复杂些,大家一定都用过Windows附件中的计算器,它是一个标准的科学计算器,利用VB我们也可以做到,只是没有那么复杂,四则运算而已。

vb6.0教程 VB6.0图文实例教程

先建立一个新的项目文件,里面包含一个Form1的窗体。[www.61k.com]然后,添加控件,包括一个Text框(Text1),和17个按钮,这17个按钮使用的名称都是Command1,只是Index属性不同,就好象一个数组,创立一组按钮的方法是,先在窗体上建立一个按钮(Command1),然后在Command1上击鼠标右键,选择复制(Copy),然后在窗体上任意部位击右键,选择粘贴(Paste),系统会提示是否创建控件组,选择?是?,重复上面步骤,直至创立17个按钮为止。各控件属性如下表:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

如果想改变一些其他的属性,比如字体,可以自己定义一下Font属性,如果相对多个控件的共同属性进行改变,可以在窗体上按下鼠标,拖动,把多个控件一起选定,然后对它们的共同属性进行修改。[www.61k.com) 别看这个东西小,还费了近我两个小时呢,不觉大叹手生,里面也有些地方很绕弯子,我尽量解释清楚。

在编写程序之前,我们先来回顾一下计算器的使用。

1. 按下数字键在液晶屏上会出现数字,这是最基本的功能。

2. 第一次按下运算键,再按下数字键,将重新输入第二个数字,再次按下运算键,将算出前两个数的结果,然后按下数字键,将又重新输入新的数字。

vb6.0教程 VB6.0图文实例教程

3. 输入数字后,按下?等于键?将仍输出原来的数字,输入运算符和第二个数字后在按下?等于?,将得到二者的结果。(www.61k.com]然后又重复第二、三步。

4. 按下?清除?,数据被全部清除。

了解了这些,我们一步一步实现。 先实现数据的输入,请看代码。 与未创立组的控件相比,它的事件里多了Index参数,组里所有的对象都使用同一个事件。 先在General里声明窗体级全局变量: Dim Num1, Num2 As Single

Dim StrNum1, StrNum2 As String

Dim FirstNum As Boolean '判断是否是数字开头

因为Text1里是存放字符串的,所以要把输入的数据进行运算,必须把字符型变量转变为实型变量,分别用Num1、Num2和StrNum1、StrNum2进行存放。 在Form_Load事件里给变量初赋值: Num1 = 0

Num2 = 0

StrNum1 = ""

StrNum2 = ""

FirstNum = True

因为17个按钮使用的是同一事件,所以我们用一个Select Case语句区分各个按钮,双击任意按钮输入代码:

vb6.0教程 VB6.0图文实例教程

Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 0 To 9

If FirstNum Then

StrNum1 = Str(Index)’实型转字符型

FirstNum = False’初赋值为假

Else’非初赋值

StrNum1 = StrNum1 + Str(Index)

End If

Text1.Text = StrNum1’显示

<还有其他语句,等待插入>

End Select

End Sub

运行程序的话已经可以输入数据,下面我们来处理小数点。(www.61k.com) 在General里声明新的变量:

Dim PointFlag As Boolean '判断是否已有小数点

vb6.0教程 VB6.0图文实例教程

我们知道小数点只能输入一次,一个数据中不能有多个小数点存在,所以需要一个布尔变量做判断。[www.61k.com]

在Form_Load里进行初赋值:

PointFlag = False

在Command的单击事件里接着上面输入新的代码:

Case 10

If Not PointFlag Then’如果没有小数点

If FirstNum Then’如果是第一个字符

StrNum1 = "0."

FirstNum = False

Else

StrNum1 = StrNum1 + "."

End If

Else’已有小数点

Exit Sub’则退出单击事件

End If

vb6.0教程 VB6.0图文实例教程

PointFlag = True

Text1.Text = StrNum1

下面会复杂一些,我们先跳过等号,而来处理四则运算: 先在General里声明新变量:

Dim Runsign As Integer '储存运算符号

Dim SignFlag As Boolean '判断是否已有运算符号 然后在Form_Load中进行初赋值:

Runsign = 0

SignFlag = False

在接下的Command1_Click中继续输入代码:

Case 12 To 15

FirstNum = True’使下一次可以输入新数据

PointFlag = False

'还原标记值

If SignFlag Then’前面已有运算符未运算

Call Run

vb6.0教程 VB6.0图文实例教程

Else

SignFlag = True

StrNum2 = StrNum1’把字符串1复制给字符串2

StrNum1 = ""’字符串1清空

End If

Runsign = Index - 11 ‘储存键入的运算符

里面运算的部分我用了一个过程,是因为在按下等号时还会调用到运算过程,这样可以减少代码的输入,也使程序便于浏览。(www.61k.com)建立过程(Procedure),可以在General部分直接输入,也可以通过菜单里的?Add Procedure?添加。Run的代码如下:

Sub Run()

Num1 = Val(StrNum2)

Num2 = Val(StrNum1)

Select Case Runsign

Case 1’加

equal = Num1 + Num2

Case 2’减

vb6.0教程 VB6.0图文实例教程

equal = Num1 - Num2

Case 3’乘

equal = Num1 * Num2

Case 4’除

equal = Num1 / Num2

End Select

StrNum2 = Str(equal)

StrNum1 = StrNum2

Text1.Text = StrNum2

End Sub

下面是其余的代码:(在Command1_Click事件里,接着写) Case 11

If Not SignFlag Then

Text1.Text = StrNum1

equal = Val(StrNum1)

FirstNum = True

PointFlag = False

vb6.0教程 VB6.0图文实例教程

Else

Call Run

SignFlag = False

End If

Case Else’清除按钮

Call ClearData

里面又用到了一个ClearData过程,实际上就是Form_Load里的变量初赋值,代码如下:

Sub ClearData()

Num1 = 0

Num2 = 0

StrNum1 = ""

StrNum2 = ""

FirstNum = True

PointFlag = False

Runsign = 0

SignFlag = False

Text1.Text = "0."

vb6.0教程 VB6.0图文实例教程

End Sub

vb6.0教程 VB6.0图文实例教程

这样完整的程序就完成了,本章介绍了VB的第一个控件――按钮,并且举例,希望你继续看下一章――菜单。(www.61k.com]

下面给出完整的程序代码:

Dim Num1, Num2 As Single

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

Dim StrNum1, StrNum2 As String

Dim FirstNum As Boolean '判断是否是数字开头

Dim PointFlag As Boolean '判断是否已有小数点

Dim Runsign As Integer '储存运算符号

Dim SignFlag As Boolean '判断是否已有运算符号

Sub ClearData()

vb6.0教程 VB6.0图文实例教程

Num1 = 0

Num2 = 0

StrNum1 = "" StrNum2 = "" FirstNum = True PointFlag = False Runsign = 0

SignFlag = False Text1.Text = "0." End Sub

Sub Run()

Num1 = Val(StrNum2) Num2 = Val(StrNum1) Select Case Runsign

vb6.0教程 VB6.0图文实例教程

Case 1

equal = Num1 + Num2

Case 2

equal = Num1 - Num2

Case 3

equal = Num1 * Num2

Case 4

equal = Num1 / Num2

End Select

StrNum2 = Str(equal)

StrNum1 = StrNum2

Text1.Text = StrNum2

End Sub

Private Sub about_Click()

MsgBox "Create by 周晓阳。(www.61k.com)1998/7/27", vbDefaultButton1, "VB教程第四章范例"

vb6.0教程 VB6.0图文实例教程

End Sub

Private Sub Command1_Click(Index As Integer) Select Case Index

Case 0 To 9

If FirstNum Then

StrNum1 = Str(Index)

FirstNum = False

Else

StrNum1 = StrNum1 + Str(Index)

End If

Text1.Text = StrNum1

Case 10

If Not PointFlag Then

If FirstNum Then

StrNum1 = "0."

vb6.0教程 VB6.0图文实例教程

FirstNum = False Else

StrNum1 = StrNum1 + "." End If

Else

Exit Sub

End If

PointFlag = True

Text1.Text = StrNum1 Case 12 To 15 FirstNum = True PointFlag = False '还原标记值

If SignFlag Then Call Run

vb6.0教程 VB6.0图文实例教程

Else

SignFlag = True StrNum2 = StrNum1 StrNum1 = "" End If

Runsign = Index - 11 Case 11

If Not SignFlag Then Text1.Text = StrNum1 equal = Val(StrNum1) FirstNum = True PointFlag = False Else

Call Run

SignFlag = False

vb6.0教程 VB6.0图文实例教程

End If

Case Else

Call ClearData

End Select

End Sub

Private Sub Form_Load()

Call ClearData

End Sub

按钮还有两个重要的属性Default(默认属性)和Cancel(取消属性),两个属性都以布尔赋值,把Default设为True,则在按下回车键时,不论焦点处于何处,都会触发该按钮的Click事件,而当Cancel属性被设为True,在按下ESC键时,该按钮的Click属性发生。[www.61k.com]下面举个例子:

vb6.0教程 VB6.0图文实例教程

建立一个新窗体和两个按钮,Name属性分别为cmdOK和cmdCancel,把前者的Default设为True,后者的Cancel设为True,Caption属性分别为OK和Cancel。[www.61k.com]如图4-8。填写代码后运行:

vb6.0教程 VB6.0图文实例教程

Private Sub cmdCancel_Click()

MsgBox "Cancel按钮被按下", vbDefaultButton1, "提示" End Sub

Private Sub cmdOK_Click()

MsgBox "OK按钮被按下", vbDefaultButton1, "提示"

End Sub

结果如图4-9、4-10:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

Private Sub Command1_Click()

MsgBox "Click ME 按钮被按下", vbDefaultButton1, "提示" End Sub

据我所知,有许多用户有使用快捷键的习惯,注意细节上的问题能够使将来你的程序得到更多人的欣赏,不是吗?

VB教程:第五章-菜单

文章来源:vb大世界

我们经常在Windows操作里遇到各种各样的菜单,菜 单的操作把各种命令结构化、分分类化,也节省了命令所占的空间,从作用上来讲,菜单类似于按钮,但它只有一个事件――Click。(www.61k.com]

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

VB作为Windows下的可视编程工具,菜单的设计当然很容易实现,VB3.0按下Ctrl+M,VB4.0以上的版本请按下Ctrl+E,便可呼叫出菜设计的窗口,无论VB的版本,这个窗口的样式是大同小异的,请见图5-1。[www.61k.com)

vb6.0教程 VB6.0图文实例教程

前面说过,菜单相当于简单的按钮,它有几个属性,其中的大部分我们都曾经见过,包括Name、Caption、Index、Checked、Enabled、Visible、快捷键和热键等等。其中Name是必须的。下面请跟我一起设计第一个菜单。

首先在Caption添入?文件?,Name为?mnuFile?,按下Next按钮,这样就建立了第一级菜单,注意菜单设计窗口的左中有四个箭头,按下向右的箭头,出现了一排小点,如图5-2,在VB里这叫缩排,这样就可以开始建立第二级菜单。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

小知识:实际上我们在生活就中经常用到缩排,写文章时开头要空两格就是一种缩排,在编写程序时更需要缩排,这样使程序结构化,便于观察,当然菜单设计里的缩排有更多的用处。(www.61k.com]

接着填写下一菜单项,Caption为?新文件?,Name为?mnuFileNew?,按下Next键。

小知识:VB一共如许建立6级子菜单,如图5-3,尽量不要建立这样的菜单,要知道藏在越深处的菜单项越难以被人发现,一个友好的程序界面应该让用户马上找到需要的命令。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

接着重复以上步骤,创建以下三个菜单项:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

我们在菜单里还经常看到把不同项分开的分隔条,在VB里也很容易做到,把Caption设为?-?(减号),Name为mnuBar1。[www.61k.com)最后增加这个菜单条的最后一项,Caption为?退出?,Name为mnuFileExit。现在可以退出菜单设计窗口,菜单如图5-4。

怎么样,经过几章的学习,是不是觉得Windows世界也不是那么神秘?也对,也不对。的确,我们很轻易的实现了这么多的功能,但如果你仔细想想,我们的程序还什么也不会做呢!可以说是徒有其表,要实现强大的功能,恐怕要学很长很长时间,而现在仅仅是个开头,并不是想入非非的时候,我们还要继续努力! 现在再次按下Ctrl+E,

vb6.0教程 VB6.0图文实例教程

重回菜单设计窗口,接着添加菜单。(www.61k.com](按下向左的箭头,可以使菜单上升一级,Level代表菜单的级别),根据下表添加新的菜单项:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

其中Short-Cut就是平常我们说的热键,你可以在菜单设计窗口中找到,设臵一个你需要的组合键,这样不论窗口的焦点处于何处,菜单在第几层,只要按下热键,就相当于调用了该项的Click事件。(www.61k.com)结果如图5-5。

从Win95以来程序里引入了鼠标右键功能,使鼠标有了更大的用处,在VB里我们也很容易实现。 打开Form_MouseDown事件,该事件有两个参数:Button,当按下左键时Button返回1,当按下右键时Bu

vb6.0教程 VB6.0图文实例教程

tton返回2,;Shift,是指在点击鼠标时按下的键盘键,如Shift、Ctrl、Alt,这些我们将在以后讨论,但很难避免在一章中不涉及到不该涉及的内容,学习时有个大概的理解即可。[www.61k.com]下面在该事件里添加代码(效果如图5-6):

vb6.0教程 VB6.0图文实例教程

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 2 Then

PopupMenu mnuEdit, vbPopupMenuLeftAlign

Else

Exit Sub

End If

End Sub

vb6.0教程 VB6.0图文实例教程

在上面的代码中我们用到了PopupMenu方法,它的语法是:

object.PopupMenu 菜单名,标记,X坐标,Y坐标

标记是用来表明弹出菜单位于鼠标指针位臵的,它有三个值:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

X、Y值可以用来制定菜单弹出的位臵,可以省略。[www.61k.com)

关于菜单的Visible、Enabled等属性请自己尝试。

第五章完

VB教程:第六章(1)-输入

文章来源:vb大世界

我们为什么要设计计算机程序呢,当然是为了计算机能为我们完成工作,但是 要完成不同的任务,我们就必须对计算机下达命令,然后计算机在把信息返馈回来――任务是否

vb6.0教程 VB6.0图文实例教程

完成。(www.61k.com]以上就是所谓的人机对话或交互功能,尤其是在Windows操作里我们需要进行更多的输入工作,我们需要填写各种各样的表格,设臵程序的重要参数,把数据输入给计算机,再又它完成既定的工作就是今天我们本章要重点讨论的问题――在VB中如何建立完整的输入机制。 在VB中提供了一个函数InputBox能帮助我们建立一个最简单的输入窗体,语法如下: InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])

该函数返回一个字符串表达式,其参数含义为:(?[]?表示可缺省)

prompt――字符串表达式,最大长度为1024字符,窗体上的提示部分。

Title――字符串表达式,显示标题栏里的文本。

Default――字符串表达式,窗体中文本框的缺省值。

xpos,ypos――数值表达式,以Twips为单位指定窗体出现在屏幕上的位臵。

helpfile――字符串表达式,是帮助文件的完整路径。

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

Context――数值表达式,指定适合的帮助主题。

可能你看了上面的说明并不明白,那么下面我们就用Input语句完成一个最简单的程序。 小知识:屏幕坐标

在计算机的屏幕上也有一个类似于我们在中学里常用到的直角坐标系,之不过它的原点不在左下,而是在屏幕的右上角,屏幕的最右上方坐标为(0,0),它的横坐标和我们的习惯是一致的,而纵坐标则是越向下越大,不仅是屏幕,所有的对象里都是一样,需要记清。见图6-1

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

新建一个项目(project),在Form_load里填写一行代码:

a$ = InputBox("举荐你最欣赏的网站", "最佳网站投票", "VB小驿")’不算无耻吧?:-> 按下F5运行程序,在Form1出现之前先会弹出一个输入对话框,如图6-2。(www.61k.com)这时,无论你按下OK还是Cancel都是没有区别的,因为我们并没有对输入数据进行处理,下面我们完成一个更加复杂些的程序。

新建一个项目文件,把窗口布局成类似于图6-3的结构,各对象属性如下表:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

Label1(3).Enabled = True Label1(4).Enabled = True Text1(3).Enabled = True Text1(4).Enabled = True PosChk = True

Else

Label1(3).Enabled = False Label1(4).Enabled = False Text1(3).Enabled = False Text1(4).Enabled = False PosChk = False

End If

End Sub

接着在按钮中填写代码:

Private Sub Command1_Click(Index As Integer)

vb6.0教程 VB6.0图文实例教程

Dim Prompt, Title, Default As String

Dim xPos, yPos As Integer

Select Case Index

Case 0

Prompt = Text1(0).Text

Title = Text1(1).Text

Default = Text1(2).Text

If PosChk Then

xPos = Val(Text1(3).Text)

yPos = Val(Text1(4).Text)

a$ = InputBox(Prompt, Title, Default, xPos, yPos) Else

a$ = InputBox(Prompt, Title, Default, xPos, yPos) End If

Label1(5).Caption = "谢谢您的投票,您的选择是" & a$ & "!"

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

Case 1

Unload Me

End Select

End Sub

按下F5运行程序,你会看到这样的结果。(www.61k.com]图6-4,6-5。是不是有种受骗的感觉,啊哟哟,可不是我的错,就是这么容易嘛!

从刚才的例子里,我们接触了一些VB中的输入方法,其实数据输入不仅仅局限于向Text框中输入数据,数据的输入还有许多其他的方法,譬如前面的Check1也是向程序发出一定的信息,

vb6.0教程 VB6.0图文实例教程

只要是通过操作向计算机发布命令就可以叫做输入,下面我们来一一介绍。[www.61k.com)

首先要介绍的当然是输入用到最多的Text框。Text没有Click事件,它的缺省事件是Change,也就是当Text框里的一旦内容改变就会激发该事件发生,还是让我们用实例说话吧。 Text有几个特殊的属性,一是MultiLine(多行)属性,MultiLine属性为False的时候,不论文本有多长,它都会在一行里显示下去,换行符无效,当它为True的时候,字符串显示到Text框边缘的时候就会自动换行。另一个与之配合的属性是ScrollBars属性,它有4个值,0到3,分别是没有滚动条,水平滚动条,垂直滚动条,和二者都有,它是一个只读属性,也就是说只有在程序设计过程中才能改变,而不能在程序运行中改变,但是我们可以通过API解决运行中改变的问题,我们放在以后再讲。PasswordChart属性,我们经常在程序操作中遇到要填写密码的部分,为了保密起见,在屏幕上显示的字符一般?*?表示,并且这时是无法用剪贴板的,这在VB中非常容易做到,把PasswordChart中设一个用来代替字符串的字符即可,并不一定是?*?哦。

下面我们完成一个有趣的小程序,是我以前遇到过的一个程序,我对其进行了部分修改。程序的意思是这样的,假设你是一个司机应超速被警察扣留,现在需要你向警察陈述你的理由,如果你的话能打动他,就可以免交罚金,如果你在规定的字数里没有说出什么有震撼力的话,那老兄你可就惨了,交钱吧。J

这个程序比原来的英文程序有了几点不同,第一,由于用到的是双字节中文的中文,所以对于检测中文字符和英文有很大不同,第二,原来的英文程序不管你说多少,警察依然是依法从事,本例中给了犯规者10%的免罚机会(有点无聊……L ,不过也是为了学一些东东嘛)。下面就跟我来设计窗体吧。(如图6-6)

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

还可以为Label1在Font属性里选一个合适的字体和字重。[www.61k.com]下面我们来看代码:

首先初始化程序:

Private Sub Form_Load()

'把Command1放在水平的中央

Command1.Top = Label2.Top+200

Command1.Left = (Form1.Width - Command1.Width) / 2

'重叠三个图片框

Picture2.Left = Picture1.Left

Picture2.Top = Picture1.Top

Picture3.Left = Picture1.Left

Picture3.Top = Picture1.Top

End Sub

下面我来讲一讲程序是怎样运行的,我们将用到Text的Change事件,每当字符串改变一次就对它进行一次检查,算出已经说的字数,当字数超过10时,下面的红绿灯会变成黄色,并且在这时随机抽取一个数,它在一个范围内出现的可能是10%,如果在这个范围内就可以免交罚金,如果不在范围则继续,当文字超过20的时候,红绿灯会变成红色,再一次抽取随机数字,步骤同上,如果30个字已满,再进行一次检查,如果你真的那么不幸就该罚款了。

vb6.0教程 VB6.0图文实例教程

程序的步骤清楚了,我们在来看看程序的要点。(www.61k.com)由于中文是双字节字符,也就是说一个汉字占两个ASC码的位臵,而VB显然是为英语国家设计的用Len函数无法返回汉字字节,也就是说一个汉字和和一个ASC字符在Len函数中得到的值是一样的,这就需要特殊处理。用Asc()函数,在括号内放入一个ASC字符或字符串,它会把第一个ASC码转化为0-255的数值,而把一个汉字放入,它的值必然不在0-255,这也就可以作为判定汉字的基础。我们可以把英文算作半个汉字。

下面我们来看看代码:

在General 里声明窗体级变量:

Dim Level As Integer

Private Sub Command1_Click()

Unload Me

End Sub

Private Sub Text1_Change()

Dim StrLength As Integer’字符串长度

Dim RandomNum As Single’随机数

Dim Str1 As String

Dim a As String

vb6.0教程 VB6.0图文实例教程

Dim i, Temp

StrLength = 0’每次开始时把字符串长度还原为0 a = Text1.Text

For i = 1 To Len(a)’Len(a)代表字符串的长度 Temp = Asc(Mid$(a, i, 1))’挨个取字符

If Temp > 255 Or Temp < 0 Then’不是ASC码 StrLength = StrLength + 2

Else

StrLength = StrLength + 1

End If

Next i

StrLength = StrLength / 2

Select Case StrLength

Case 0 To 9

Picture1.Visible = True

vb6.0教程 VB6.0图文实例教程

Picture2.Visible = False

Picture3.Visible = False

Label2.Caption = "慢慢说。[www.61k.com]你还有" & Str(30 - StrLength) & "个字可以说" Level = 1

Case 10 To 19

If Level = 1 Then

RandomNum = Rnd * 10’得到随机数

If RandomNum <= 10 And RandomNum > 9 Then

Text1.Enabled = False

Label2.Caption = "很抱歉这是个误会……"

Command1.Visible = True

Command1.Caption = "您可以离开了"

End If

Level = 2

Else

vb6.0教程 VB6.0图文实例教程

Picture1.Visible = False

Picture2.Visible = True

Picture3.Visible = False

Str1 = "怎么还没说完!"

Label2.Caption = Str1 & "你还有" & Str(30 - StrLength) & "个字可以说" End If

Case 20 To 29

If Level = 2 Then

RandomNum = Rnd * 10

If RandomNum <= 10 And RandomNum > 9 Then

Text1.Enabled = False

Label2.Caption = "很抱歉这是个误会……"

Command1.Visible = True

Command1.Caption = "您可以离开了"

End If

vb6.0教程 VB6.0图文实例教程

Level = 3

Else

Picture1.Visible = False

Picture2.Visible = False

Picture3.Visible = True

Str1 = "我已经不耐烦了!"

Label2.Caption = Str1 & "你还有" & Str(30 - StrLength) & "个字可以说" End If

Case Else

Text1.Enabled = False

Label2.Caption = "你已经没有机会了!"

Command1.Visible = True

Command1.Caption = "交钱吧,肇事犯!"

End Select

End Sub

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

中间有几个函数需要解释一下:

Mid可以从字符串中取出一部分,返回字符型,格式:

Mid(字符串,从第几个字符开始,取字符的长度)

Asc

vb6.0教程 VB6.0图文实例教程

可以把字符转换为

vb6.0教程 VB6.0图文实例教程

ASCII

vb6.0教程 VB6.0图文实例教程

码,格式:

vb6.0教程 VB6.0图文实例教程

Asc(字符串)

Rnd,取得大于0但小于1 的数值,可以没有参数。(www.61k.com]

怎么样,十分简单吧,我们将在下一次继续讨论VB的输入机制,再见!

VB教程:第六章(2)-输入(2)

文章来源:vb大世界

在继续上面的内容时,我想再回顾和强调几个在字符串操

vb6.0教程 VB6.0图文实例教程

作中经常函数:

先是几个已经接触过的,Mid(),Asc(),Len(),它们的语法分别是: Mid(字符型,起始字符,长度)

返回子字符串,如果从字符串的第一个字符取起,起始字符为1,依此类推。[www.61k.com)

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

Asc(字符型)

返回数值,如果参数不是一个字符,而是字符串(多个字符),将返回参数的第一个字符ASCII值。

Len(字符型)

返回字符串的长度。

下面我再为你解释几个新的函数:

Left(字符串,长度)

将返回字符型,从字符串的第一个字符向左取字符串,与之相对应的是Right(),它将从字符串的最后一个字符向右取字符串。 Chr(数值型)

该数值范围从0-255,返回字符型,如Chr(65)可返回字符?A?,这样可以输入一些用键盘无法输入的字符。

vb6.0教程 VB6.0图文实例教程

Str(数值型)

该函数把数值型转换为字符型,也许你觉得数值?123?和字符串?123?没什么区别,但在内存中一个ASCII字符是占一个字节,也就是说字符串?123?占3个字节,而当数值?123?是整型时,它占两个字符,当它是长整型时,占4个字节。(www.61k.com]与之向对应的是Val(数值型),它把数值型转换为字符型。

上面的函数都是以后要经常用到的,请将它们熟悉。

上次讲到文本框的用处,还有意思吗?你是否能把上次的程序稍稍变动一下,来计算出输入的单词数,提示一下,单词与单词之间是用空格分隔开的。

我们继续下面的内容。

上次说到,输入不仅仅是向文本框输入字符,凡是从外界向程序传递数据都可以叫做输入,我们一一说明白。

无线钮,记得我们曾在第一章中完成过我们的第一个程序――?Hello World!?它就是一种输入的方法,在设计VB程序时可以通过一组这样的无线钮,它们之间互相排斥,也就是说,只能有一个按钮被选中。它因为很象无线电收音机上的按钮因而得名无线钮。如果要在一个窗体内放臵多组无线钮必须用Frame控件把它们区分开来。下面我们在来完成一个例子,顺便熟悉一下另外两个处理字符串的函数――LTrim

vb6.0教程 VB6.0图文实例教程

()和Rtrim(),它们分别用来删除字符串左边的空格和右边的空格,让我们看看它们是如何工作的。(www.61k.com]

vb6.0教程 VB6.0图文实例教程

程序窗体如图6-8,由于窗体比较简单,无需修改更多的属性,一共有三个文本框(Text1到3),分别用来显示输入字符,显示把空格换成星号的字符,和经过处理的字符,还有三个无线钮(Option1到3),要修改的只有Caption属性,分别是?删除左边的空格?、?删除右边的空格?和?删除两边的空格?。因为空格在我们在文本框中无法看到空格,所以我们通过一个称作AddStar的函数把原有字符串中的空格转换为星号,使我们能够看到函数的效果。下面在程序中添加代码,首先在General中声明窗体级变量:

Dim LTrimmedword$, RTrimmedword$ '删除左边空格和右边空格后的字符串

Dim LRTrimmedword$ '删除两边空格后的字符串

vb6.0教程 VB6.0图文实例教程

然后,我们通过一个叫做addstar的函数为字符串加上星号,以前曾说过函数与过程的分别,函数会返回一个函数值,所以addstar也就相当于一个变量,其实这很好理解,就象中学代数中的函数,函数就相当于变量Y,而函数中的参数则相当于自变量X,当然可能有很多自变量X1、X2……请原谅,我并不想在这里上数学课,因为我厌恶那玩意儿,特别是上了大学之后,好在大二以后就再也不会有数学课了,哈哈……

Function addstar(tempword As String) As String

Dim charindex%

Dim pasteword$ '加星号后的字符串

For charindex = 1 To Len(tempword)

If Mid(tempword, charindex, 1) = " " Then '如果字符为空格 pasteword = pasteword + "*"

Else: pasteword = pasteword + Mid(tempword, charindex, 1) End If

Next

addstar = pasteword '返回函数值

End Function

vb6.0教程 VB6.0图文实例教程

下面的代码很简单,并且我为它做了注释,就不再一一解释了,我只想简要的提几句,Ltrim和Rtrim只有一个参数(字符型),另外下面用到了焦点事件,我们曾在第三章中介绍过,当Text1得到焦点(GotFocus)时,清空所有的文本框,当它失去焦点(LostFocus)时,对字符进行addstar并且在Text2中显示。[www.61k.com)

Private Sub Text1_GotFocus() '但焦点于Text1

'清除所有文本框中的字符

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

End Sub

Private Sub Text1_LostFocus()

Dim Origionword As String

Origionword = Text1.Text

Text2.Text = addstar(Origionword)

LTrimmedword = addstar(LTrim(Origionword))

RTrimmedword = addstar(RTrim(Origionword))

LRTrimmedword = LTrim(RTrim(Origionword))

End Sub

vb6.0教程 VB6.0图文实例教程

Private Sub Option1_Click()

Text3.Text = LTrimmedword '显示删除左空格后的字符串 End Sub

Private Sub Option2_Click()

Text3.Text = RTrimmedword '显示删除右空格后的字符串 End Sub

Private Sub Option3_Click()

Text3.Text = LRTrimmedword '显示删除两边空格后的字符串 End Sub

最后结果如图6-9。(www.61k.com)

vb6.0教程 VB6.0图文实例教程

与无线钮相对的是检查框,在同一范围内一组无线钮只能有一个被选中,而检查框则可以有多个选择,就象在添表时,性别那项只能有一

vb6.0教程 VB6.0图文实例教程

个选择,而在描述你以前的职业时可以有学生、程序员、家庭教师或者什么,总之有很多选择,下面我们举一个简单的例子加以说明。[www.61k.com] 假设编写了一个共享软件,在让用户注册的时候你想知道你的用户使用的计算机情况,你就需要一个调查表,为了使这个调查表不止枯燥,可以在这个程序中加入一些图形。新建一个项目文件,窗体布局如图6-10。

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

程序很简单,一共有两个框架(Frame1和Frame2),它们的Caption分别为?选择你的计算机拥有的配臵?和?这是你的计算机系统?,在Frame1有四个检查框(Check1到Check4),Caption分别为?网络系统?、?鼠标?、?密码保护?和?电子邮件?,另把Check4的Enabled属性改为False,使其无效;在Frame2中放臵四个图片框(Picture1到Picture4)与四个检查框向对应,请把所有图片框

vb6.0教程 VB6.0图文实例教程

的BorderStyle属性设为0(无边框),它们的Picture属性请根据上图,在存放图标的目录中找到相对的图标。(www.61k.com]下面是程序代码: Private Sub Check1_Click()

If Check1.Value Then

Check4.Enabled = -1

Picture1.Visible = -1

Else: Check4.Enabled = 0

Picture1.Visible = 0

Check4.Value = 0

Picture4.Visible = 0

End If

End Sub

Private Sub Check2_Click()

If Check2.Value Then

Picture2.Visible = -1

Else: Picture2.Visible = 0

End If

vb6.0教程 VB6.0图文实例教程

End Sub

Private Sub Check3_Click() If Check3.Value Then Picture3.Visible = -1

Else: Picture3.Visible = 0 End If

End Sub

Private Sub Check4_Click() If Check4.Value Then Picture4.Visible = -1

Else: Picture4.Visible = 0 End If

End Sub

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

这个程序比我们见过的任何程序都简单,就不再做说明。(www.61k.com)

VB教程:第六章(3)-输入(3)

文章来源:vb大世界

首先,我想先对第六章的拖拖拉拉表示歉意,一是因

为它实在太长了,二也是因为我自己太懒了,今天写几个字,明天添两笔,以致于写了三次才将它真正完成,还请大家原谅。

好,废话少说,让我们赶快切入正题。上次我们讨论了无线钮和检查框的使用方法,相信你已经熟悉,因为它们实在太简单了,现在让我们继续?输入?的最后几个部分。

滚动条(ScrollBar)在视窗中也是一个不可缺少的部分,由于面积所限,我们不得把屏幕上的内容滚来滚去,以显示大量的内容,这就是我们经常要用到的滚动条。但滚动条除去滚动窗口,

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

还有一个

vb6.0教程 VB6.0图文实例教程

很重要的作用――输入,想想你经常用到的一些家用电器上调节声音或别的什么东西的滑块,你把它滑向大的一方音量就会增大,而你把它滑向小的一方音量就会减小,或者一个控制左右两个音箱的均衡器,当滑块在正中央的时候,两个音箱的音量是相同的,当你把滑块偏向一方时,音箱的音量有了大小之分,在Windows操作中,我们也经常要用到类似的效果。[www.61k.com]

在VB中提供了两个常规的滚动条控件――Vscroll和Hscroll,分别代表垂直的和水平的滚动条,它们只不过是方向不同而已,而它们的属性,以及会发生的事件都是相同的。,滚动条有几个特殊的属性: Value属性,当滑块挪动后停在某一位臵时,就改变了滚动条的Value属性。

Max和Min属性,用来设臵滚动条的最大值和最小值,譬如把Max设为100,把Min设为0时,滚动条的Value就在0到100之间移动,当Max和Min倒臵时,滚动条的方向也会相反,也就是说,当Max<Min时,原来Value增加的方向就会变成相反的方向。Max和Min也可设为负值。

SmallChange和LargeChange属性,当鼠标在滚动条两头的箭头上单击时,就会把滚动条向相应的方向挪动一点,这时用到的就是SmallChange属性,当你把它设为1时,每点一下,滚动条的Value

vb6.0教程 VB6.0图文实例教程

就改变1;当鼠标在滚动条上点击时,用到的就是LargeChange,当设为10时,每点击一下滚动条,Value就改变10。(www.61k.com)

下面我们看一个实例。

大家都知道,物体之所以会有颜色是因为物体表面的材料吸收了太阳光中的部分色光,而还有部分色光没被吸收而被反射回来,它就成了我们看到的颜色,黑色就是物体吸收了所有的太阳光的所有色光,没有反射颜色,所以在我们看来是黑的,而当物体反射了所有的色光,我们看到的就是白色。在计算机中,颜色的表示就是象我们刚才描述的样子,它把颜色分为红(R)、绿(G)和蓝(B)。众所周知,计算机的机器语言是使用二进制表示的,为了方便查阅我们看到的往往是十六进制代码,一个字节包括两位十六进制数字,从0-255(十六进制表示0-FF),而一个字节是由八位二进制数值表示(2^8,2的8次方),计算机中用分别用一个字节,也就是八位表示一种颜色,和在一起也就是三个字节(24位)表示所有的颜色,这就是我们平时常说的24位真彩,它一共可以组成256×256×256(2^2

4)种颜色,对于我们的肉眼,是根本分辨不出来相邻两个不同的颜色的,比如用FFFFFF表示白色,就好象我们刚才说的物体反射了所有的色光,相反的可以用000000表示黑色,它吸收了所有的色光,还可以用FF0000表示红色,在HTML语言中就是这样表示颜色的。 小知识:现在你可以根据你的显卡的显存来计算一下显卡在24位真彩下可以以多大的分辨率显示,计算是这样的,用显存的字节数

vb6.0教程 VB6.0图文实例教程

÷3(24位色)=显示器宽的象素数×显示器高的象素数,宽的象素数:高的象素数=4:3,比如4兆显存,就应该是4×1024×1024÷3=1365×1024。[www.61k.com]

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

在下面的小程序中,我们通过三个滚动条分别代表R、G、B,滚动滚动条,将在右边的图片框中显示相应的颜色,并且在下面的文本框中显示颜色的十六进制数值。

现在,新建一个项目文件,在Form1中如图6-12布局控件,各控件属性如下表:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

为了把十进制数值换成十六进制数值,要使用一个叫做Hex()的函数,它把十进制数值转化为十六进制的字符,但对于只有一位的十六进制字符,这个函数并不在高位补零,为了视觉上的正确,我设计了一个小函数帮助它给一位的十六进制字符补零.

程序代码很简单,见下:

Dim RedStr, GreenStr, BlueStr As String’RGB的字符 Dim RedNum, GreenNum, BlueNum As Integer’RGB的数值 Function GetColorValue() As String

‘获得输入值

RedNum = HScroll1(0).Value

GreenNum = HScroll1(1).Value

BlueNum = HScroll1(2).Value

RedStr = Hex(RedNum)

If Len(RedStr) < 2 Then RedStr = "0" + RedStr’补零 GreenStr = Hex(GreenNum)

If Len(GreenStr) < 2 Then GreenStr = "0" + GreenStr BlueStr = Hex(BlueNum)

If Len(BlueStr) < 2 Then BlueStr = "0" + BlueStr

vb6.0教程 VB6.0图文实例教程

GetColorValue = RedStr + GreenStr + BlueStr’合并 End Function

Private Sub Form_Load()

‘初始化程序

Text1.Text = GetColorValue

Picture1.BackColor = RGB(RedNum, GreenNum, BlueNum)'RGB函数返回颜色值

End Sub

Private Sub HScroll1_Change(Index As Integer)

‘当滚动条被改变时

Text1.Text = GetColorValue

Picture1.BackColor = RGB(RedNum, GreenNum, BlueNum) End Sub

运行如图6-13。(www.61k.com)

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

列表框(ListBox)和复合列表框(ComboBox)也是我们经常见到的视窗元素,我们从它所列示的条目中选出所需的,两种列表框只是在外观上略有不同,但从本质和操作方法来说它们是很相象的,它们也有一些特殊的属性:

List属性,你可以利于该属性象列表框或复合列表框中添加条目,但也可以在程序设计中通过AddItem方法添加。(www.61k.com)

ListCount属性,返回列表框或复合列表框中条目的数目。

ListIndex属性,表示列表框或复合列表框的第几项条目。(从0到ListCount-1)

Sorted属性,可以通过该属性对列表框或复合列表框中的条目根据字母顺序排序。

MultiSelect属性,0表示不能多选,1表示简单多选,2表示宽展多选,仅限于列表框。

vb6.0教程 VB6.0图文实例教程

Columns属性,表示条目是以一列显示还是两列显示,仅限于列表框。(www.61k.com) Style属性:表示列表框或复合列表框以何种风格显示,二者参数不同。

举两个简单的例子。

例子一,建立一个新项目文件,在Form1上添加一个List控件,调整适当的尺寸,无需改变任何属性。填写以下代码。

Private Sub Form_Load()

With List1

.AddItem "0-Default"

.AddItem "1-Arrow"

.AddItem "2-Cross"

.AddItem "3-I-Beam"

.AddItem "4-Icon"

.AddItem "5-Size"

.AddItem "6-Size NE SW"

.AddItem "7-Size NS"

.AddItem "8-Size NW SE"

.AddItem "9-Size WE"

.AddItem "10-Up Arrow"

vb6.0教程 VB6.0图文实例教程

.AddItem "11-Hourglass"

.AddItem "12-NoDrag"

.AddItem "13-Arrow And Hourglass"

.AddItem "14-Arrow And Question"

.AddItem "15-Size All"

End With

End Sub

Private Sub List1_Click()

MousePointer = List1.ListIndex’这里的MousePointer是窗体全局内的属性

End Sub

当你点在不同项上面鼠标指针也会随着改变,如图6-14。(www.61k.com]

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

AddItem方法语法如下:

ListObject ?字符串?,数值

字符串后的数值可以指定条目加入在第几个条目的位臵上,如果没有的话,添加项将逐次排下去。[www.61k.com]

下面举一个复合列表框的例子,例子通过选择复合列表框中的选项来改变文本框的字体。请新建一个项目文件,在窗体中添加一个ComboBox(Combo1)和一个TextBox(Text1),添加如下代码。 Private Sub Combo1_Click()

Text1.FontName = Combo1.List(Combo1.ListIndex)

End Sub

Private Sub Form_Load()

With Combo1

.AddItem "宋体"

.AddItem "隶书"

.AddItem "黑体"

.AddItem "楷体"

.ListIndex = 0'把第一个条目作为初始项

End With

vb6.0教程 VB6.0图文实例教程

Text1.FontSize = 30’放大字体

Text1.FontName = Combo1.List(0)’初始字体为?宋体? End Sub

如图6-15。(www.61k.com)

vb6.0教程 VB6.0图文实例教程

(第六章完)

VB教程:第七章-输出

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

文章来源:vb大世界

上一章里,我们讨论的VB的输人机制,这次我们来集中讨论VB中信息的输出。

输入和输出是不可分割的,人们输入的最终目的是希望计算机作出反应,任何一个程序都不可能避开这个问题,所以就算要完成一个最基本的程序,也要有输出的部分,复杂的程序更是如此。

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

在输入的一章里,我们学习的第一个输入方法是InputBox,相应的在输出中我们第一个要接触的是MsgBox(Message Box),和InputBox相似,MsgBox也是简化了的窗体,可以以函数的形式返回操作。[www.61k.com]它的基本语法是:

MsgBox "显示内容",按钮值,"标题"

通过这个函数可以产生一个标准的Windows消息框,象我们平时经常接触的?Yes/No?、?OK/Cancel?,?Retry/Abort/Ignore?等等,这些都是在按钮值中设定的,按钮值如下:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

并且不同的消息可以搭配不同的图标,比如帮助文件用问号,一般提示用一个圈里一个I等等,它们也是按钮值的一部分:

vb6.0教程 VB6.0图文实例教程

但是如何既显示按钮也显示相应的图标呢,请看一会儿下面的例子。(www.61k.com)前面说过,MsgBox是函数,那么它就会有返回值,当你按下某个按钮就会返回一个数值,以便对用户不同动作的捕捉,返回值如下:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

说了这么多,可能你已经不知所措了,不过看过下面的例子后,相信一切都会迎刃而解。[www.61k.com]

首先建立一个新项目文件,并添加以下对象(见图7-1)――一个Button(Command1),两个ComboBox(Combo1和Combo2),不要对其属性做更多的修改,只需把Command1的Caption改为?Click Me?。这个程序的目的是自由组合上面的按钮值,以显示各种消息框,并且返回按下的按钮,Combo1和Combo2分别用来选择按钮值,首先在Form_Load中初始化程序:

Private Sub Form_Load()

Combo1.AddItem "OK"

vb6.0教程 VB6.0图文实例教程

Combo1.AddItem "OK and Cancel"

Combo1.AddItem "Abort,Retry and Ignore"

Combo1.AddItem "Yes,No,Cancel"

Combo1.AddItem "Yes,No"

Combo1.AddItem "Retry,Cancel"

Combo1.ListIndex = 0

Combo2.AddItem "危险"

Combo2.AddItem "询问"

Combo2.AddItem "警告"

Combo2.AddItem "信息"

Combo2.ListIndex = 0

End Sub

ComboBox的用法已经在上一章中讨论过,在此不再赘述,ListIndex属性用来把第一个元素放在选择位臵。[www.61k.com]

vb6.0教程 VB6.0图文实例教程

但是如何显示需要的按钮和图标呢?很简单,只需把它们相加,比如说要显示OK、Cancel按钮和警告的图标,只需把1和48相加,得到49即可,于是我们在Command1中填写这样一行:

Private Sub Command1_Click()

message = MsgBox("显示" & Combo1.List(Combo1.ListIndex) & "和" & Combo2.List(Combo2.ListIndex), Combo1.ListIndex + (Combo2.ListIndex + 1) * 16, "消息演示")

End Sub

因为图标值是从16开始的所以要把Combo2的ListIndex加1再乘以16。[www.61k.com]

小知识:按钮值并非简单的相加

按钮值并非简单的相加,我们知道,在计算机里最终的语言是机器语言,而机器语言是以0和1的二进制表示的,在这里用到的实际上不是相加,而是逻辑操作符?OR?,你知道OR和AND是怎样工作的吗?正如你所知,True And False得到False,而True Or False得到True,这是怎么形成的呢?我们有时也用0代表False,用1或-1代表True(其实,只要非零都可以代表True),而0和1在二进制中还是本身,于是True、False的运算就变成的0 和1的运算,我们可以把And叫做补0运算,把Or叫做补1运算,当用And处理两个

vb6.0教程 VB6.0图文实例教程

二进制数的时候,它们逐位比较,如果相同的位上都是0或都是1则没有变化,而如果一位上是0,另一位上是1,最后结果上相应的位上就变成0。(www.61k.com)比如1010(十进制中10)And 1101(十进制中13),最后就得1000(十进制中8),相同的Or亦是如此,只不过在不同的地方补1。在位数不同时,前面补0,你可以在VB中试试看。但为什么要讲这些呢,原因是我不想让大家真的以为这个例子中就是相加,只不过碰巧它们的0和1处在不同的位臵上,并且这个小知识在今后的位图操作和API操作中很有用处。

下面在来判断用户按下的按钮。

Private Sub Command1_Click()

message = MsgBox("显示" & Combo1.List(Combo1.ListIndex) & "和" & Combo2.List(Combo2.ListIndex), Combo1.ListIndex + (Combo2.ListIndex + 1) * 16, "消息演示")

Select Case message

Case 1

MsgBox "你按下了OK钮"

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

Case 2

MsgBox "你按下了Cancel按钮"

vb6.0教程 VB6.0图文实例教程

Case 3

MsgBox "你按下了Abort按钮" Case 4

MsgBox "你按下了Retry按钮" Case 5

MsgBox "你按下了Ignore按钮" Case 6

MsgBox "你按下了Yes按钮" Case 7

MsgBox "你按下了No按钮" End Select

End Sub

运行程序,结果如图7-2,7-3。[www.61k.com)

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

第七章未完待续

VB教程:第七章(2)-输出(2)

文章来源:vb大世界

很久没有继续VB教程了,也有很多初学VB的朋友来 信留言要求继续,说起来惭愧,不是有时候犯懒,就是杂物缠身,今天好不容易做在电脑前想敲几个字,哪知打开VB5出现非法操作,卸载后重新安装非法提示依然出现,真是岂有此理!Windows系统用了很久了,看来冲突实在是太多,但这么久没有更新,实在说不过去,这次就算是一次纸上谈兵,带来不便之处还请大家包涵。(www.61k.com]

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

上次为大家讲解了MsgBox的用法,这次我来讲讲其他的输出方法。(www.61k.com]

在程序中我们如果想输出执行的结果最经常要用到什么对象,你可能会告诉我是文本框或标签控件,但事实往往不是这样,因为它们的显示方法单调,不能把各种字体的文字、图形结合在一起,因此最符合要求的控件应该是图片框(PictureBox),或直接就在Form本身上显示,其中要用到一个很重要的方法:?Print?,它的用法是:

对象.Print Spc(n)/Tab(n);字符串表达式;……

其中Spc(),表示打印字符之间的空格,n表示空格数目,Tab()表示绝对列数,n表示列数,也就是说你可以指定在那一列上打印,它们用?;?和字符串表达式分开,但也可以是这样:

对象.Print 字符串表达式1,字符串表达式2,……

用?,?隔开字符串,这样系统就会按默认的(14列)为一个输出位。每使用一次Print方法,程序就会在指定的对象上打印一行,在用Print则在下一行打印,当对象是窗体时,对象可以省略,例如打印一个表格:

(注意:要把使用Print的对象的Autoredraw属性设为True,我们知道,当有多个窗口层叠时,哪个窗口得到焦点就会显示到最上面,

vb6.0教程 VB6.0图文实例教程

当它显示时就是一种重绘的过程,Windows系统需要重新计算原来它的图形界面,这是一个非常复杂的过程,不过在VB中只需用一个Autoredraw属性就可以做到了,不信的话可以保持该属性为False,看看会怎样?)

Private Sub Form_Load() Print '空一行

FontUnderline = True

FontSize = 18

FontBold = True

Print , "中国VB联盟成员列表"

Print

FontUnderline = False

FontSize = 10

Print Tab(3); "姓名"; Tab(15); "年龄"; Tab(25); "性别"; Tab

(35); "个人简介"

FontBold = False

Print Tab(3); "Mars"; Tab(15); "21"; Tab(25); "男"; Tab(35); "……"

vb6.0教程 VB6.0图文实例教程

……………

……………

End Sub

更多的内容我将在下一章的用VB作图中向你说明。(www.61k.com]

当然,在平时用文本框或标签控件显示输出结果也是一种简单的方法,这些和我们以前讲到的大同小异,也就不再进行过多的介绍了,下面我来讲讲对字符串的格式化方法。

这里要用到Format()函数,它可以对字符串按照指定的形式输出,也可以用做数字、日期的格式化,方法是:

Format (表达式,[格式化表达式])

其中格式化的表达式可以为:?0?,?#?,?.?,?,?,?:?,?$?,以及?()+-E+E-?等等表示,下面我将举一个小例子说明Format的所有功能(奇迹!奇迹!这时在打开VB5居然非法操作消失了!):

请先建立一个项目文件,在Form1上添加两个框架控件(Frame)和若干按钮、文本框、无线钮和标签控件,具体如图所示:(图7-2-1):

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

其中有两排八个按钮为Command1,Index从0到7,又有七个无线钮Option1,Index从0到7,下面为了能够使用,请为它们修改Caption属性,如图7-2-2。[www.61k.com)

vb6.0教程 VB6.0图文实例教程

然后加入如下代码:

vb6.0教程 VB6.0图文实例教程

Dim FormatExp As String

Dim ThisTime As Date

Private Sub Command1_Click(Index As Integer) FormatExp = FormatExp + Command1(Index).Caption Text1.Text = FormatExp

End Sub

Private Sub Command2_Click()

a$ = Format("1234567890.0987654321", FormatExp) Label1.Caption = "格式化后的数值:" + a$ Text1.Text = ""

FormatExp = ""

End Sub

Private Sub Form_Load()

ThisTime = Now

Label2.Caption = ThisTime

vb6.0教程 VB6.0图文实例教程

End Sub

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

Private Sub Option1_Click(Index As Integer)

Text2.Text = Format(ThisTime, Option1(Index).Caption) End Sub

其中0和#代表数值显示的位数,不同的是如果定义格式化表达式的位数如果多于原表达式,则使用0则补0,使用#则省略0;?.?用来指定小数点的位臵;其余字符用来分割数值,如?,?。(www.61k.com] 结果如下图:7-2-3。

vb6.0教程 VB6.0图文实例教程

关于时间的格式化表达式的定义方法如下表:

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

好吧,第七章的内容就讲完了,在第八章中我将把VB的简单绘图知识教给大家,下次再见!

vb6.0教程 VB6.0图文实例教程

如何成为一名优秀的程序员?

文章来源:vb大世界

一位仁兄说的?程序员写的程序不是算法+语法 ,而

是要能够满足用户需求的工 具?我非常赞同,要想达到用户需求就必须从各个方面来考虑如业务、人机交互 、效率等方面,而不只是一个语言(语法)的问题,语言(语法)只是工具,只 知语法不知其他那就真是编程机器了! 编程机器在印度高中生经过几个月培训,按照严谨的软工方法,加上较高的管理 ,就可以胜任了!大家相信吗,我是相信的!谈到这里我就不禁说到了国内教育 界最近在探讨的问题?计算机科系的毕业生特别是本科大专生到底出来干啥、如 何适应社会要求?,大家也看到了很多计科系大学生说精通N种语言,熟悉N种工 具,不知道学校里的其他知识到那里去了,甘愿做编程机器,浪费了人民的纳税 ,干高中生能干的事,比较可惜吧!在国内现在就是这样了,看过一则帖子:清华的计科系毕业声在建筑院里搞开发还不如建筑专业的毕业生。[www.61k.com)说着说着就岔道 了,国内的软件开发业到底是需要那些人:如果仅仅是编码机器,那我估计中国 硅谷还是做梦去吧!

社会似乎也需要编码机器,翻翻招聘广告,做应用开发的都要求精通某某语言, 熟悉某某工具,很少需要懂管理懂软工的人。以我个人一点偏激的想法,民族软 件产业要腾飞,更需要的是能管理使用编码机器的人,即管理人员、国内软件产 业编码机器已经很多了。希望不要惹怒了那些编程高手! system develop与

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

vb6.0教程 VB6.0图文实例教程

Application d

vb6.0教程 VB6.0图文实例教程

evelop在国内到底哪个能养活你,能赚钱,诸位 仁兄想必也知道,况且俺也没发现几家水平高的公司招这方面的人,毕竟OS,DB MS,COMPILER都被国外做了、另外也别跟我谈LINUX,毕竟还是少数烧钱的人做的 事情,我先喂饱肚皮再说。(www.61k.com]我手下的很多搞4GL语言的程序员都想转行学VC等所谓 的更低级的语言,我总是说?在XX城市,先用4GL工具生存,以后再学习VC吧!? ,说的简单一点先解决肚子问题。如何判断自己是否是编程机器?

1、面对需求不考虑用户,只是考虑用那些程序技术展示自己的语言语法技巧 .

2、学习了N种语言 .

3、从来不学习或实践软工 .

4、语法语言水平在众人中遥遥领先、特别是一些稀奇古怪的语法 凭着兴趣和创造力去干,却重复繁琐的劳动。 做着没有意义-唯一意义是赚钱,而且真是出了半斤力, 拿不足八两。 终日劳累,却不能学自己想学的。最终结果是跟不上社会科技的发展 ,人已衰老。悲哀!!!

开发软件的关键是要有想法,一个好的想法比什么都重要。尤其是有关 网络方面的就更是如此。

入门还可以,但是要继续深入了解可能要难点。 未必吧 偶觉得大学里的高数 数理方法之类的, 如果你不是做研究的话, 应该是很少能 用到的 不过如果说到离散之类的, 倒还是时不时的能有点用

vb6.0教程 VB6.0图文实例教程

现在的程序员比起十年前是不是要花更多的时间来 查帮助呢。[www.61k.com]系统越来越大,手册越来越厚,软件开发的 周期是不是越来越多的淹没在查帮助之中了呢。

实际上一个程序员最终的技术需要和实际相结合。真正在编写程序到达一定时候,语言的使用并不是最大的障碍,对整个项目的把握、软件工程的把握、数据库的设计以及执行效果的分析等等才是需要进一步考虑的东东!否则,为何大多数公司到要求有编程经验了!这些不是程序员必须学的。但数据结构,编译原理,操作系统原理等是必须要学好的,英文的多看,不懂计算机英语可不行。其实我不是什么中专生,而是我读的中学和一个私人办的电脑学校联合开的电脑专业(并不是我中考考的差,而是这个学校太贪钱了,才被录取到这里,恼火,我们班里中考成绩从两百多到四百多的都有,我就是四百多分(重理轻文的结果,要不然...),当时读书的时候,我是班是的高手(其实只是比其它同学懂而已),大家叫我dos,因为当时学的都是dos的内容, 毕业后还没有对编程很感兴趣,只想找一个电脑的工作就可以了,哪怕是打字的,可是看报纸,去人才中心,看到都是要大学的,为此感到很失望.也对电脑失去了兴趣.后来学校打电话到我家,说厦门厦华公司要招工,要不要去,我很快就答应了,因为当时没工作,天天呆在家里.后来打工的时候,天天象一个机械人一样,重复着同一道工序,因此经常在深夜的时候,思索着自己的未来,由此重新生起了对电脑的感情,因此经常买电脑杂志和报纸看(可以堆成一座山了).由于离我住的地方不远处,有一个电脑培训的,所以经常到那里上机,而在学

vb6.0教程 VB6.0图文实例教程

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

校里学过的软件也只有FOXBASE和WPS,其它的不值一提,所以上机经常用foxbase,直到这时候,才对编程产生了浓厚的兴趣,一年后,自已买了一台电脑,开始认真学习编程.由于我是属于职业中专的,因此经常想,就算学得再好也没有用,所以想考程序员,而考程序员要懂得c语言,所以就学习turbo c,学完了,学数据结构,同时看'C高级实用程序设计',澳门回归和2000年的两个晚上,我都是在编程中度过的. 由于我这个人对书很感兴趣,经常在星期六,星期七去书店,而在书店里,也是看编程方面的书,而看到的编程书籍大部份都是windows方面的,为此也经常思索着学dos编程到底有没有用.后来,春节放假(要2月13日上班)回老家,天天去新华书店(正月初一也去),看到也都是windows编程方面的书多得像狗屎一样,所以就下决心学windows编程,因此正月初四(快餐店还没有开张)就去厦门了,很快买了delphi的书和d版delphi5,疯狂地学习(到目前为止,买了8本delphi的书,因为国人的写的书实在太烂),而由于遇到不懂的又不知道怎么办,为此想到了网络,但在外打工不可能上网(上网吧太贵),所以就辞职了(4月21日),现在,程序员考试快到了,是报还是不报一直犹豫不觉,困此才有此问题.打工的岁夜,我永远不会忘记,因为付出太多了,也失去了太多(坏了两个光驱,瘦了几斤),直到现在,脑海里还不时浮现起那几个无眠的夜晚.忠心感谢大家.

我不认为编码的人就是机器, 而系统分析就不是机器, 其实系统分析员就是销售的机器, 所有职员有是老板的机器.它们之间这是

vb6.0教程 VB6.0图文实例教程

不同工种吧了, 当然对系统分析要求要高一些, 薪水也高一些, 但更让人佩服的是销售, 是他们驱动了整个的运作.我也是个中专生, 还是学机械的(后来自学了计算机), 我非常了解在传统的制造业是如何的规范, 设计人员设计图纸, 然后经审核, 再到车间试样, 再根据情况, 修改图纸, 如此反复几次后才能一个产品定型,而在软件界, 就没那么好了, 领导会说, 这个你做, 那个他做, 也没有经过很细的分析(国内很多都是这样), 在我们这里也没有系统分析员, 每个人都是设计员, 也是编程员, 虽然这样对个人来说, 能学到很多东西, 但不利于项目.我国的软件过程水平,确实令人担忧, 目前为止只是, 几个人十几个人的小软件, 还没有能拿得手的大型软件. 至于中专生编程问题, 我认为只要入了这个行, 就不会比本科生差, 因为对他来说没有优越的学历条件, 那么只好埋头苦学, 但这正好适应当前计算机软件迅速发展的今天, 学历只能代表过去和基础, 更需要的是有能力的人, 解决问题的人, 实干的人.对我来说确实有时有点自卑, 没有上过高中和大学(由于那个年代, 我只知道能为父母减少一点负担就行了), 所有我一直在努力的学习(corba, uml, java, 软件过程等), 目前为止我并没有觉的我的构架能力和编码水平比他们差, 只是觉得E语言实在太差.过计算机本科又如何?我有几个同学到银行去搞业务了,有同学任教,有同学收税去了......60多个人真正现在搞计算机的还就只有几个人,再看看当时这些计算机本科生的毕业设计,//faint有的人到最后连vb都搞不定,但他们什么编译原理啦什么组成原理啦什么软件工程啦学的(应

vb6.0教程 VB6.0图文实例教程

该是考试的分数)真还不错,至少我感觉有些概念比我清楚(上课没听?)所以我觉的中专生并不比一般大学生差(当然有些重点学校除外//hehe),有时中专生有更大的压力逼迫自己去学习,学历不是重要的,关键是一个人的素质.我们不能将目标定位在做程序员或编码员(Coder)上光会写代码有什么用?那叫?编码员?,在国外是属于体力劳动的,不像国内,会写程序的就叫高科技。[www.61k.com)重要的是分析问题、解决问题和规划的能力,系统分析,系统设计及项目规划才是正途。这就需要学习所谓的基础课程了,如:软件工程、离散数学、数据结构等等。

从vb到现在开始学vc后,一个人捣鼓了几天也没有什么新发现。跟本不知道VC的编程思想是什么,请大虾们告诉我,它和VB的差别真是太大了。VC的博大在于MFC的操纵,它是Win32API的封装.思想在于怎样了解MFC的内幕,它的运行机制.差别也大,差别也不大!这要看你对API的理解了,虽然VC++的可视化没有VB的好,但是不是绝对没有的,其对而且对话框的编辑是跟VB一样的,不过不是像VB那样放在第一个界面罢了,VC++的博大精深是VB难以望其项背的!:)而且VC++是完全面向对象的编程工具,而VB是不够完全的面向对象编程工具,VC++是完全编译语言,VB是本地编译语言,不够完全,VC++效率高,封装性好,继承性高,VB效率相对低了很多,但界面友好,二者只能取其一,或者使用VC++,VB辅助(因为VB开发快),当然Delphi,BCB也是不错的选择。

vb6.0教程 VB6.0图文实例教程

程序员不应依赖开发工具,程序员更应该拥有的是一种思维、一种精神、一种观念。(www.61k.com]就像Richard.M.Stallman一样,有自己的精神,为自由软件而奋斗。就像求伯君,为民族软件的振兴而奋斗。这才是真正的程序员。

应该说,他们更注重的不是技术,而是软件的思维,软件的灵魂!!我刚学VC的时候,还没有上网.身边也没有一个可以问的朋友,所以大部份都是自己啃的.那种感觉真是很痛苦. 现在在网上就不同了,可以得到太多的资料了,而且还可以得到在线帮助.但这些都不是学习的关键. 相信各位也知道VC的难度,并不是那么容易上手的,所以要想学会,学好VC,靠外力是不可能的.主要得靠自己.

自己要有一份难得的毅力,对编程的狂热也可以在一定程序上起到帮助.我就是这样的.起初,没有人帮我,我学习VC是三天打鱼两天晒网,学习进度很慢,幸好对编程的执著,使得自己坚持下来了. 如果你从来就没有接触过编程,那你学习VC的速度可能会比学过面向过程编程的人要慢一些,因为你要去理解命令及语句的含义.但只要你努力,并且可以得到别人的帮助,我相信在半年内会对VC有一定的认识. 请学赤面向过程编程的朋友也不要笑,因为面向过程与面向对象实在是区别太大了.就拿封装一词来说吧.当初我是左想右想才想通的.所以不要自己学过编程,就会在学习VC的通道上比别人轻松.

vb6.0教程 VB6.0图文实例教程

现在有一种现状应该让我们注意.我发现有很大一部份初学者觉得VC是一种语言,C++又是另一各语言.我在和一些初学者的交谈当中,查觉到了这一点.有的初学者竟然还认为我学VC为什么就一定要学C++?我想这个问题是我们大家都没有注意到的一个问题.就是向初学者讲述C++对VC学习的重要性. 我这有个例子,跟大家讲一下. 我有个同学,他接触编程比我要早,在我还在为VC中"::"符号怎么标记的时候,他已经在学习C了.后来,我对VC稍有理解的时候,他也发觉C的跟不上时代的脚步了.我便提议他从C++语言学起,可他认为自己有C的学习功底,根本就用不着再去学习C++.可在学习VC的当中,遇到的困难真是数不胜数.最近,他还是去买了一本学习C++的书.从头再来学习C++. 我希望通过这个例子,能让广大的初学者知道,C++对VC学习的重要性。[www.61k.com)

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

学习VC必须有狂热的编程热情,否则是很难坚持下来的,我周围就有几个这样的人,他们比我先学VC近半年,但现在仍然学不会,而我现在虽说不是很厉害,但基本的应用程序是不在话下,我就是天天看书,上机实践,几乎所有的时间都泡在里面,有时连吃饭都在想,为什么,因为我确实想啃下这块硬骨头,我不想半途而废,我觉得学习VC不仅仅是学到了更多的东西,最主要的是培养了我们自己一种坚持克服困难的毅力。

对于VC,我有几点经验:

1。技术为本,语言为次.

2。MFC的单个类有用,DOC/VIEW要小心。

vb6.0教程 VB6.0图文实例教程

3。(www.61k.com]OOP要小心,使用不当反而造成大量的工作和糟糕的代码。

4。如果可能,考虑选择使用Delphi(CBuilder+VCL)。

5。到了一定程度,一定要学COM。

要学VC,必须有对C++深刻的理解,对WINDOWS运行机制的深刻理解。尤其想成为VC高手。举例 , 对于虚函数,不仅要知道有这么一个东东,更要知道它的内存镜像 。这样才能对VC中很多的东西举一反三,事半功倍。本人学习VC近2年,但自觉第一年由于心情浮躁,把VC的书翻了一遍又一遍,却每次都只看了一点就无法再深入。直到毕业前夕,痛定思痛,克服浮躁,认认真真的从最基本的开始学,把每一点都搞的水落石出,经过三个月的刻苦,终于大成。直到现在,半月搞定COM/DCOM,都托当日刻苦之福,因此劝告想学VC的朋友,一定要顶住开始的艰难岁月。成功属于刻苦者。

每个人都有自己的学习方法,也许这种方法对我来说有用,但不见 得就对所有的人有用.所以,请不要盲目的跟着别人的学习方法学习,要思考属于自己的学习方法. 但我还是会向大家说出我自己认为比较好的一种方法. 学习编程其实与学习其它东西一样,要想掌握它,就要实践,实践,再实践.当你学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法. 这个实践不是照著书上的例子做一遍,而是根据自己的能力,给自己出题,然后去完成它.只有这样,你才能发现自己的不足,同时又增加了自己的编程经验. 但要成为合格的程序员,光会写代码是远远不够的,更重要的是思考.谋定而后动,是 不变的真理.

vb6.0教程 VB6.0图文实例教程

在我的理解,VC只是一个编程工具,就如BC、BCB、Delphi 一样,其实对于编程最根本的就是三个方面,语言、开发包、 操作系统API,他们三个方面应该说是相对比较独立的。(www.61k.com)

VC是MS开发的,所以针对的是windows api,你可以不会C++, 也可以在VC下用C写出很优秀的程序,当然如果你比较熟练C++, 并且熟悉开发包MFC的话,工作可能要轻松不少。所以在我看来,学习的过程可以是这样的:

1、先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;

2、在基本上掌握了语法之后,开始接触简单的系统API,学习 Windows的编程原理和机制;

3、在可以编写简单的菜单程序,可以简单地在WM_PAINT下操作 GDI函数后,开始学习MFC,可以从Step tourist学起,看MFC的源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。 在学习的过程中为了给自己增加点挑战,尽量不要使用resource edit,试着自己编码实现控件的创建,消息的响应。 再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。 究竟我们要的是结果!良好的分析问题高效清晰地肢解问题的能力才是我们真正要不断学习的吧?

和学习其他知识一样,重要的是获得提出问题,分析问题,解决问题的能力,不是为编程而学习,你具有什么样的思想,就会写出什

vb6.0教程 VB6.0图文实例教程

么样的程序。(www.61k.com]学一门语言,不能仅仅是语言,要注重语言背后的思想方法,看他是如何来解决某一问题的,为什么要这样去做,他总是要符合客观事实的,就像人说的话一样,存在某种逻辑,数据的组织,信息的传递,靠你自己的头脑去建立,然后看C++中有什么可以帮你的,该怎么样用他来表达自己的想法。只要你认真实践,努力去做,寻求乐趣,就会达到目标。我虽然 真正认真学习编程的时间不长,但现在我是认真的,就有了以上的体会。

学习VC++有相当的内容要学,而最后的深度则看个人的悟性与勤奋了。

1)掌握最新标准的C++。(2个月)

如果曾经在大学里自以为学过C/C++,还对dynamic_cast/static_cast/template/try/catch/throw/stl/...感到陌生,那你该Refresh一下新的ANSI C++标准了。 ----此与VC++无甚关联,g++/bcb均有所支持。

2) 学习SDK编程;:-O (6个月) 痛苦是暂时的,必要的,坚持就是胜利! 建议用Lccwin32/Masm32/Tasm编写小而精的工具软件; "Windows Programming Guide." "Advanced Windows programming "

3) 研究MFC源代码。(6个月)

不要被一大堆的宏所蒙蔽,just track and dig into it!! 在

vb6.0教程 VB6.0图文实例教程

知道MFC如何扩展,包装SDK之后,自可功力渐进,不被其MFC系统框架所困绕。(www.61k.com)"MFC Internals"

4) 研究OLE/COM技术。

COM/ActiveX技术是MS的核心技术,只有彻底洞察其理论精髓才可以体会现在的

操作系统的技术趋势,以不变应万变。

"Inside Ole 2"

***几点建议***:

1) Delphi/BCB/VB可以很快构筑界面,但对于想真正学习、理解系统不是一个好的平台,但如果有时间读一读VCL的源码,看看Borland是如何封装系统的,也可借鉴不少。

2) 学习ASM对理解C++有很大益处。Soft-ICE也是和VC++结合在一起的好工具;

3) 语言本身是皮毛,算法是筋骨;无论高级语言如何发展,在理解操作系统的基础上不断自我创新的能力是源源不断的;如果精髓一旦了然于胸,选择何种开发工具都可以驾御,一见如故了。

每个人学习的过程都会不同吧,我在98从TC转向VC时,对Windows的消息机制一点概念也没有,对着个MFC不知所措,几个月下来一点进展也没有。我于是暂时转向win32位编程。整整一年时间吧,我就是与API打交道,连编辑菜单条对话框等资源文件时也用Uedit32手工编写,为的是希望能对编译器的全过程有个感性的了解。之

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

vb6.0教程 VB6.0图文实例教程

后我再转向MFC时,果然发现两者是相通的,虽然有一定的区加,不过有了win32位编程的基础再看MFC 时会发现它比win32位编程要方便了太多。(www.61k.com] 现在市面上的VC书很多,不过大多是入门书。我以为要精通VC(只是以为,本人自已距精通还远的很)应该多看多写程序,看书只能是入门,会用了而已。我不赞成滥用ActiveX,一来我以为它的性能很成问题,真是又大又慢又不稳定(可能是我有点偏激了吧),二来用了它您的程序今后就要被别人牵着鼻子走了。有次我用了个控件,程序都写了大半了,它给我来个继续使用请支付333美元,我两个多月的工钱,烦不烦人?现在我尽可能用别人写的类源代码(我已收集各类代码3-400MB了),一样用起来方便,还能边用边学,必要时还能自已改造。

我以为在现代的网络时代,资料到处都有,无论什么先进的技术,今天我不会我只要查到资料,快的学上几天慢的一两个月我也能学会,现在已没有写不出的程序了,写不出是因为你没有耐心写完它。我以为现在的程序员不一定要多么聪明,而更需要他有完成枯燥项目的耐心,找BUG的细心,对于金钱的平常心(不要为了早日拿到钱而赶进度),最后最重要是有顾全大局,团队协作的精神。 最后,王靖朋友的经历与我实在是有点相似,算是同病相伶吧,真心祝您早日实现自已的人生目标!学习VC是一项费时费力的艰苦学习过程。为了真正用好VC,你 不得不先从OOP开始学起,也许浏览一本纯理论的书要更有意思。 你将从另外的角度考察OO思想。接下来学习C++,学习WindowsAPI 学习MFC,剖析MFC,扩充MFC,创造自己的类库(不

vb6.0教程 VB6.0图文实例教程

要企图写一个 和MFC同重量级的类库)。[www.61k.com]如果能够精通Microsoft C编译器的各种 参数,你就可以开始研究微软C/C++语言编译器的进化历史(结合 各种背景知识)。 掌握了编程的思想,征服VC只是时间问题。

学习VC是接受微软技术体系的过程。所需要学习的不仅仅是C++,MFC。 需要学习所有微软的技术,包括Windows编程,Win32系统(实际上 Win32系统实现了很多我们在屏幕上能看到的东西,最起码NT的内核 并不大),COM(深入研究它,理解对象是如何跨越进程边界的,最终 能够自如地在Exe中实现自己定义的接口才算到家了。不过这多少有些 不太必要。),DCOM,ctiveX,Windows DN

A... 如果你想成为大拿,学吧,没完没了。最起码,使用VC,你甚至于可以开发自己的操作系统(当然与MFC没有一点关系)。

扩展:vb6.0实例教程 / vb6.0实例视频教程 / ai图文实例教程

二 : VB6.0图文实例教程90

VB教程:序言-不再游戏 我们需要什么

我们需要什么?当我们在一个精彩的游戏世界中游历了一番之后,或是惊叹于某一工具软件的小巧精致之余,多少总会产生些许编程的冲动。编程吗,在以前如果你对电脑还是一个门外汉,那实在是一件可望而不可及的事情。如果运用基于DOS下的编程语言,譬如C、Qbasic、Pascal等等,真不知何年何月才能有所成就。

编程是需要天赋的,你必须在大脑中对整个程序有一个清晰的轮廓,一个高效的流程,这并不是每个人都能做到的,你必须思之慎之,这也使编程变成一件最枯燥无味的事情。但在第四代计算机语言(可视化编程)出现后,可以确切的说它开发了人们的更多天赋,并不局限于那些头脑异常清晰的人,每一个人都可以发现自己也可以编出一些从前不敢问津的程序,想象力的充分发挥才是第四代语言的精粹。 Visual Basic(以下简称VB)可以说是可视化语言的先驱了,而且它也是可视化程度最高的一个,从几年前VB诞生之日起到现在,它已经经历了五个版本,而且现在微软正在紧张的进行着VB6.0的研制、测试,这么高的更新率,不外乎说明两个问题:用户对VB的热衷,微软对VB的重视。不可否认微软对市场的预测能力是极为高明的,而它强大的技术、财力支持也使它在许多以前未进入的领域,在

不长的时间内有成为最有力的竞争对手,如IE之于浏览器领域,《帝国时代》之于游戏都是最好的例证。对于VB现在也有一个很强的竞争对手――Delphi,有人把它称作VB杀手,这显然有偏激之处,VB的确有它的不足之处,但Delphi又何尝不是呢,而且以微软对VB的倾心,VB的功能必然会越来越强大。

VB的诞生

VB的出现可以说是Microsoft Windows的日渐成熟的必然产物。Microsoft Windows为程序员和最终用户提供了一个共同的人机界面。对用户,Windows提供了一个图形鼠标的操作环境,该环境对所有的应用程序都一样;对于程序员,Windows提供了一组预定义工具----称之为Microsoft Windows 的软件开发工具箱(SDK),该工具能使程序员建立一个与Windows界面相同的应用程序,而且,程序员不必关心最终用户的硬件配臵情况。在这一开发环境中,程序员唯一困难的是Microsoft SDK提供了六百多个函数和与其一致的事件驱动(event-driven)编程技术。两种新方法的交叉使众多的程序员重新陷入困境,程序员不仅要掌握程序驱动编程技术和六百多个函数的功能,而且还得用C语言描述这些问题。因此一般情况下,程序员首先要掌握C程序设计技术,而后再开始学习SDK。这样的条件下就要求在Microsoft多任务环境下出现一种操作方便,使用简单的新工具----Visual Basic由此诞生。

何为可视

英文Visual的意思是?视觉的?,?可视的Baisc?这个名字可能抽象了点,但实际上它却是最直观的编程方法,之所以叫做?可视?,你只要看到VB的界面就会明白,实际上你无需编程,就可以完成许多步骤。在VB中引入了控件的概念,在Windows中控件的身影无处不在,各种各样的按钮、文本框、无线钮,都是控件的种类,VB把这些控件模式化,并且每个控件都有若干属性用来控制控件的外观,工作方法。这样你就可以象在画板上一样,随意点几下鼠标,一个按钮就完成了,这些在以前的编程语言下是要经过相当复杂的工作的。

我的希望:

我在学习VB的过程中也曾遇到了许多困难,而且用的参考书大都来自译文,毕竟美国人和中国人的表达方式有所不同。这也造成了理解上的困难,所以我想为什么我不能写一个给中国人看到VB教程呢,于是我这么做了。也曾经在杂志上发表过几篇用VB制作小程序的文章,但受杂志的限制(篇幅、内容等等)(我得听小编的),总没有一个机会系统的介绍一下VB,造成了小小的遗憾。不过,我自己的主页建好后,终于这个愿望可以实现了,利用HTML可以方便的把文字与图片结合起来,不失为一个教学良所,也希望能够得到大家的支持。 希望?VB教程?能给你我一个互相学习的机会,如果你能从中获益那将是我最大的快乐,那时你一定会发现编程比游戏有趣得多。:)

VB教程:第一章-Hello World!

VB6.0图文实例教程90_vb实例教程

示图画,每一个控件建立的时候,系统都会给它设一个默认的名字(Name),这个PictureBox的名字就叫做Picture1,为了方便起见,我们以后的控件都使用缺省的名称。选定Picture1,在左边的属性窗口中找到Picture属性,单击会出现,点击为Picture1选一个图像文件,VB支持的图像文件有BitMap、WMF、ICO三种,微软为用户提供了一套图标文件,存放在VB目录的Icons目录下,选择Icons\misc\face01.ico文件,这样图标就被装入了Picture1。再选择Pictrue1的Autosize属性,设为1-True,则会发现Picture1以变成和图像一样大了;把BorderStyle定为0-None,去掉图片边框。用同样的方法再添加两个图片框:Picture2(Picture:face02.ico),Picture3(Picture:face03.ico)。

图片框完成了,第二步,建立三个无线钮(Option Button),由于它象收音机的无线电按钮而得名),把它们的标签名属性(Caption)分别定为?悲哀?,?高兴?,?没治了?,放臵成图1_2的样子。

最后我们还需要三个文本框(Text Box),分别把它们的Text属性设为??(空字符串),程序的最后界面如图1_3,这样按下菜单窗口的运行按钮,运行一下程序,还可以吧,不过现在程序还无法工作,就算是VB也不能免俗,还必须输入代码才能使程序运作。

VB是一门典型的面向对象编程的语言,它的整个程序都是由事件驱动的。那么,什么是事件呢?其实,我们的生活中充满了各式各样的事件,比如说?闯红灯?这个事件的发生会导致被警察追杀、走路撞到电线杆时会痛。上面的例子虽然有些滑稽,但它可以清楚的解释事件的含义,就象你马上就能体会到的在什么地方单击鼠标时会发生什么,按下键盘时会发生什么,这就是事件,而事件就是这么容易。 要进入VB的代码设计区,只需在需要的控件或窗体上双击鼠标即可得到这样的窗口。如图1_4,每一个VB程序都由若干小程序组成,这使得用VB编程更加容易,这些小程序,分为?过程?(Proc

edure)和?函数?(Function),二者都可以传递参数,所不同的是函数有一个返回值,而过程没有,仅此而已。

双击窗体的任何一个部分,将出现一个空的过程:?Form_Load

()?,这是一个非常重要的过程,它所驱动的事件就是该窗体被加载的事件,打个比方,就象计算机启动时的批处理程序(Autoexec.bat)。 这个程序里我们要对控件进行一些设臵。我们刚才也曾对控件进行设臵,但那是在程序设臵中进行的,有时我们也需要在程序中改变某些控件的属性,通过程序代码。VB中规定,一个控件属性的访问方法:名称.属性,于是我们对本程序的控件进行如下设臵: Private Sub Form_Load()

Picture1.Visible = False

Picture2.Visible = False

Picture3.Visible = False

Text1.Visible = False

Text2.Visible = False

Text3.Visible = False

End Sub

Private表示此过程是局部的,Sub表示子过程的开始,与之相对的是End Sub表示过程的结束,Visible属性表示控件的可见性,这个属性的值有两个True和False。

注意:

VB里对大小写是不加区分的,而且,已定义的名称,以后再用到时,系统会自动把它变成相应的大写或小写。

小知识:

1.VB里的对变量及常量的规矩。

变量一般为Abc的格式,常量为ABC,另外这些变量和常量名不得同VB内的关键字相同,也不可以使用一些特殊符号,这些我们将在以后介绍,注意在学习中养成好习惯,使程序便于自己和别人的浏览。

2.程序书写的窍门:

不要真的一句一句把程序打完,利用快捷键:拷贝Ctrl+C,剪切Ctrl+T,粘贴Ctrl+P。

按下F5,运行一下程序,现在发现只剩下无线钮了。如图1_5。

Private Sub Form_Load()

Picture1.Visible = False

Picture2.Visible = False

Picture3.Visible = False

Text1.Visible = False

Text2.Visible = False

Text3.Visible = False

Option4.Left = -2000

Option4.Value = True

End Sub

VB6.0图文实例教程90_vb实例教程

Left属性表示控件离窗体左边框的距离,设臵为-2000,则在窗体

内不会看到这个控件,并使之Value=True。再运行程序,一切如愿,

如图1_6.

注意:为什么不用Option4.Visible=False?

因为,一旦设臵无线钮为不可见,那么再使它的Value为真是没有意

义的,不信自己试试。

下面我们可以继续进行了。在刚才的代码窗口里,将Object选择为

Option1,Proc选择为Click,即得到一个Option1_Click的过程。

代码如下:

Private Sub Option1_Click()

Picture2.Visible = False

Picture3.Visible = False

Text1.Visible = True

Text2.Visible = False

Text3.Visible = False

Text1.Text = "再见,残酷的世界。"

End Sub

相同的建立Option2_Click和Option2_Click:

Private Sub Option2_Click()

Picture2.Visible = True

Picture1.Visible = False

Picture3.Visible = False

Text2.Visible = True

Text1.Visible = False

Text3.Visible = False

Text2.Text = "今天心情不错。"

End Sub

Private Sub Option3_Click()

Picture2.Visible = False

Picture1.Visible = False

Text3.Visible = True

Text2.Visible = False

Text1.Visible = False

Text3.Text = "Hello,World。"

End Sub

好,我们的开山之作完成了!按下F5,玩一下吧。这个程序虽然简

单,但也用到了许多基本知识,你开始感兴趣了吗?

^_^

VB教程:第二章

-事件、属性及数据类型

VB6.0图文实例教程90_vb实例教程

每个对象都有它的属性,并且?Name?属性是共有的,有了?Name?属性才可以在程序中进行调用。对于属性,可以在窗体的布局操作中完成,也可以在程序运行中改变,这取决你的需要,但有些属性是只读的,它只能在控件布局时改变。我将在以后的实例中具体介绍各个属性的作用。

三、数据类型

学过编程的人都知道大多数的计算机语言都规定了各自的数据类型,VB也不例外。其实,在一个最简单的程序中数据类型是可以不作规定的,也就是说,变量可以使用各种类型,但是在一个复杂的程序里,这样做就很危险,因为很可能给同一个变量赋予了不同的类型,而导致程序出错。所以,为了程序的严谨和便于查看,正确的定义数据类型是必要的。定义数据的另一个原因是,不同的数据占用不同的内存数量,譬如整型(Interger)数据占2字节,而长整型数据占4个字节,定义合适的数据类型,不管你相信不相信,它可以节省内存!

1. VB常用的数据类型有:整型(Integer,表示-32768至32767之间的整数)、长整型(Long,表示-2,147,483,648至2,147,483,647之间的整数)、实型(Single,表示-3.37E+38至3.37E+38之间的实数)、双精度实型(Double,表示-1.67E+308至1.67E+308之间的实数),字符(String,每个字符占一字节,可以储存0~65,535个字符),布尔(Boolean,只有两个值True/-1,或False/0)。

2. 数据类型的定义方法:

定义变量最简单的方法是用?Dim?关键字,它的语法:

Dim 【变量名】As 【数据类型】

如:Dim Index As Integer

也可以在一行中定义多个变量,如:

Dim Index As Integer , Dim Number As Long

把多个变量定义成同一类型可以写成:

Dim Index , Number As Integer

有时为了简便,也以符号进行简单的定义,作用是和上面一样的。整型可以用?%?代替,长整型可以用?&?代替,实型可以用?!?,双精度实型可以用?#?定义,如刚才的第一个例子可以写成:

Dim Index% 等价于 Dim Index As Integer

对于常量的定义用Const定义,如:Const COLOR=255。

为了在程序中便于查阅,我们对变量和常量的写法进行规定,变量一般用小写方式,常量则全部大写。

注意:使用常量的好处,对于程序中经常出现的数值,应设常量等于它,这样一是书写方便,其二,如果要改变该数值,只需改变定义常量的语句值,而不需改变每个语句,提高了效率。 数组的定义类似于变量定义,所不同的是数组需要指定数组中的元素个数,例如: Dim IntegerArray(99) As Integer

这个数组中包含100个元素,脚标从0到99。

也可以指定脚标的起始值,例如:

Dim IntegerArray(2 to 10) As Integer

这个数组含有九个元素,脚标从2到10。

还可以定义多维数组:

Dim ThreeD(4,2 to 5,3 to 6) As Integer

上例定义了一个三维数组(4×4×4)。

记录的定义

记录定义是把控制权交给用户的方法,它让用户可以定义自己的数据类型,它使用关键字?Type?,方法是:

Type 【数据类型标识符】

<域名> As <数据类型>

<域名> As <数据类型>

<域名> As <数据类型>

…………………………

End Type

例如,定义一个地址数据:

Type Address

Street As String

ZipCode As String

Phone As String

End Type 这个地址数据里包括三个属性,街区、邮政编码和电话,可以把某数据定义成此类型:

Dim MyHome As Address

要调用或改变?MyHome?的值时,类似于对对象的属性的操作:

变量名.域名=?……?

为了简化书写重复的部分,可以用关键字?With?:

With MyHome

.Street=?阜成路?

.ZipCode=?100037?

.Phone=?12345678?

End With

VB教程:第三章-VB语言

VB6.0图文实例教程90_vb实例教程

Rem Dim a As String 的作用是一致的。

三、长语句的分行

在比较早的版本中,因为没有象C等语言用?;?隔开语句与语句,VB的语句是必须写在一行里的,不过后来版本的VB里如许用分行符?_?把一个长语句分成若干行来存放。

四、条件语句

如果你学过任何一种编程的话,都会知道在程序里控制其流程的有两种语句,条件与循环,VB自然也不例外,其实不管哪种语言,条件和循环的样子都差不多,只不过各有各的规矩罢了。 在条件语句里,我们先来学习?If……Then……?语句。

它的一般语法是:

If <条件> Then

<语句>

<语句>

………

End If

与C 语言不同,VB的条件语句更符合英语的语法,如果Then后面所跟的语句只有一条,可以写成:

If <条件> Then <语句>

Case <情况3>

……

……

……

Case Else

……

End Select

例如:

Select Case a%

Case 1

Print ?a=1?

Case 2

Print ?a=2?

Case Else

Print ?a does not equal to 1 or 2.?

End Select

五、循环语句

循环结构是计算机语言里一种重要的结构,它的应用广泛,最简单的例子是累加器的作用,还可以用于穷举法,更直观的例子是把某件事重复指定的次数,这样就不用把要重复的语句输入

多次,而通过循环结构完成,非常方便。

C语言里有一个?for?循环语句,VB里也有?For?关键字,作用也差不多,只是VB的?For?语句更容易理解。它的格式是:

For <循环变量>=<初赋值> To <终值> [Step <步长>]

……

……

Next <循环变量>

在默认情况下,Step被设为?1?,可以省略,Step也可以设为负值,例如:

Dim a=0

For I=1 To 10

a=a+I

Next I

这是一个最简单的累加器的例子,把1到10累加在一起,然后赋值给?a?这样的效果和上面是一样的,只不过是倒着加罢了,请看:

Dim a=0

For I=10 To 1 Step –1

VB6.0图文实例教程90_vb实例教程

a=a+I Next I

While语句也是一个很常用的循环语句,它的形式很多。

Do While …… Loop语句

While …… Wend 语句

Do …… Loop While

While后面都跟逻辑条件判断,?Do While …… Loop语句?和?While …… Wend 语句?作用相似,都是先判断While后面的条件是否为?真?,如果为?真?则执行里面的语句,如果为?假?,则退出循环,循环直至条件为?假?终止。?Do …… Loop While ?与前两者的区别在于,它不管条件的真假,都会先执行?Do?后面的语句,也就是说,它至少执行语句一次。

与While用法相似的还有Until语句,它是直至条件为真则终止循环,句式把While上述三个语句的While换成Until即可,但是因为容易记混,所以我建议只用While即可。Until <条件>可以相当于While Not <条件>。

For循环和Whlie循环应当根据适当的环境使用,它们有时也可替换。 六、运算操作 数学运算

+:加法运算,也适合于字符串的之间的合并运算。

VB教程:第四章-按钮

VB6.0图文实例教程90_vb实例教程

把使用Button1的Enabled属性设为False(假),是使程序在初始时,无法单击Command1。按F5,运行程序,图4-4,复原按钮成为

灰色,不可选。

当然现在程序还什么也不能做,下面我们在程序中添加代码: 首先在General里声明全局变量:

Dim StoreString As String '用来储存字符串

※注意:为什么用全局变量?

VB里每一个小过程都相当于一个程序,程序里的变量称为局部变量,是只能在程序内部使用的,而当程序调用结束后,由于从内存中被清除,所以变量储存的值也就消失了,这里的全局变量是用来在过程中传递字符串。

接着填写以下代码:

Private Sub Command1_Click()

Text1.Text = StoreString

Command1.Enabled = False

End Sub

Private Sub Command2_Click()

StoreString = Text1.Text

Text1.Text = "" '清除

Command1.Enabled = True

End Sub

运行程序,如图4-5。按下?清除?,文本框被清除,按下?复原?,文本有被恢复,许多程序中的Undo/Redo就是利用这个原理实现的,现在知道为什么内存越多越好了吧。

我们在把程序修改一下,把Button2删除,Button1的Enabled属性改为True,Caption改为?清除?,填写代码:

Private Sub Command1_Click()

If Command1.Caption = "清除" Then

StoreString = Text1.Text

Text1.Text = "" '清除

Command1.Caption = "复原"

Else

Text1.Text = StoreString

Command1.Caption = "清除"

End If

End Sub

同样可以上面的功能,但是却少用了一个控件,控件使用少的程序启动会快些。

下面的例子要更加复杂些,大家一定都用过Windows附件中的计算器,它是一个标准的科学计算器,利用VB我们也可以做到,只是没有那么复杂,四则运算而已。

先建立一个新的项目文件,里面包含一个Form1的窗体。然后,添加控件,包括一个Text框(Text1),和17个按钮,这17个按钮使用的名称都是Command1,只是Index属性不同,就好象一个数组,创立一组按钮的方法是,先在窗体上建立一个按钮(Command1),然后在Command1上击鼠标右键,选择复制(Copy),然后在窗体上任意部位击右键,选择粘贴(Paste),系统会提示是否创建控件组,选择?是?,重复上面步骤,直至创立17个按钮为止。各控件属性如下表:

如果想改变一些其他的属性,比如字体,可以自己定义一下Font属性,如果相对多个控件的共同属性进行改变,可以在窗体上按下鼠标,拖动,把多个控件一起选定,然后对它们的共同属性进行修改。 别看这个东西小,还费了近我两个小时呢,不觉大叹手生,里面也有些地方很绕弯子,我尽量解释清楚。

在编写程序之前,我们先来回顾一下计算器的使用。

1. 按下数字键在液晶屏上会出现数字,这是最基本的功能。

2. 第一次按下运算键,再按下数字键,将重新输入第二个数字,再次按下运算键,将算出前两个数的结果,然后按下数字键,将又重新输入新的数字。

VB6.0图文实例教程90_vb实例教程

3. 输入数字后,按下?等于键?将仍输出原来的数字,输入运算符和第二个数字后在按下?等于?,将得到二者的结果。然后又重复第二、三步。

4. 按下?清除?,数据被全部清除。

了解了这些,我们一步一步实现。 先实现数据的输入,请看代码。 与未创立组的控件相比,它的事件里多了Index参数,组里所有的对象都使用同一个事件。 先在General里声明窗体级全局变量: Dim Num1, Num2 As Single

Dim StrNum1, StrNum2 As String

Dim FirstNum As Boolean '判断是否是数字开头

因为Text1里是存放字符串的,所以要把输入的数据进行运算,必须把字符型变量转变为实型变量,分别用Num1、Num2和StrNum1、StrNum2进行存放。 在Form_Load事件里给变量初赋值:

Num1 = 0

Num2 = 0

StrNum1 = ""

StrNum2 = ""

FirstNum = True

因为17个按钮使用的是同一事件,所以我们用一个Select Case语句区分各个按钮,双击任意按钮输入代码:

Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 0 To 9

If FirstNum Then

StrNum1 = Str(Index)’实型转字符型

FirstNum = False’初赋值为假

Else’非初赋值

StrNum1 = StrNum1 + Str(Index)

End If

Text1.Text = StrNum1’显示

<还有其他语句,等待插入>

End Select

End Sub

运行程序的话已经可以输入数据,下面我们来处理小数点。 在General里声明新的变量:

Dim PointFlag As Boolean '判断是否已有小数点

我们知道小数点只能输入一次,一个数据中不能有多个小数点存在,所以需要一个布尔变量做判断。

在Form_Load里进行初赋值:

PointFlag = False

在Command的单击事件里接着上面输入新的代码:

Case 10

If Not PointFlag Then’如果没有小数点

If FirstNum Then’如果是第一个字符

StrNum1 = "0."

FirstNum = False

Else

StrNum1 = StrNum1 + "."

End If

Else’已有小数点

Exit Sub’则退出单击事件

End If

PointFlag = True

Text1.Text = StrNum1

下面会复杂一些,我们先跳过等号,而来处理四则运算: 先在General里声明新变量:

Dim Runsign As Integer '储存运算符号

Dim SignFlag As Boolean '判断是否已有运算符号

然后在Form_Load中进行初赋值:

Runsign = 0

SignFlag = False

在接下的Command1_Click中继续输入代码:

Case 12 To 15

FirstNum = True’使下一次可以输入新数据

PointFlag = False

'还原标记值

If SignFlag Then’前面已有运算符未运算

Call Run

Else

SignFlag = True

StrNum2 = StrNum1’把字符串1复制给字符串2

StrNum1 = ""’字符串1清空

End If

Runsign = Index - 11 ‘储存键入的运算符

里面运算的部分我用了一个过程,是因为在按下等号时还会调用到运算过程,这样可以减少代码的输入,也使程序便于浏览。建立过程(Procedure),可以在General部分直接输入,也可以通过菜单里的?Add Procedure?添加。Run的代码如下:

Sub Run()

Num1 = Val(StrNum2)

Num2 = Val(StrNum1)

Select Case Runsign

Case 1’加

equal = Num1 + Num2

Case 2’减

VB6.0图文实例教程90_vb实例教程

equal = Num1 - Num2

Case 3’乘

equal = Num1 * Num2

Case 4’除

equal = Num1 / Num2

End Select

StrNum2 = Str(equal)

StrNum1 = StrNum2

Text1.Text = StrNum2

End Sub

下面是其余的代码:(在Command1_Click事件里,接着写) Case 11

If Not SignFlag Then

Text1.Text = StrNum1

equal = Val(StrNum1)

FirstNum = True

PointFlag = False

Call Run

SignFlag = False

End If

Case Else’清除按钮

Call ClearData

里面又用到了一个ClearData过程,实际上就是Form_Load里的变量初赋值,代码如下:

Sub ClearData()

Num1 = 0

Num2 = 0

StrNum1 = ""

StrNum2 = ""

FirstNum = True

PointFlag = False

Runsign = 0

SignFlag = False

Text1.Text = "0."

这样完整的程序就完成了,本章介绍了VB的第一个控件――按钮,并且举例,希望你继续看下一章――菜单。

下面给出完整的程序代码:

Dim Num1, Num2 As Single

Dim StrNum1, StrNum2 As String

Dim FirstNum As Boolean '判断是否是数字开头

Dim PointFlag As Boolean '判断是否已有小数点

Dim Runsign As Integer '储存运算符号

Dim SignFlag As Boolean '判断是否已有运算符号

Sub ClearData()

Num2 = 0

StrNum1 = ""

StrNum2 = ""

FirstNum = True

PointFlag = False

Runsign = 0

SignFlag = False

Text1.Text = "0."

End Sub

Sub Run()

Num1 = Val(StrNum2)

Num2 = Val(StrNum1)

Select Case Runsign

Case 1

equal = Num1 + Num2

Case 2

equal = Num1 - Num2

Case 3

equal = Num1 * Num2

Case 4

equal = Num1 / Num2

End Select

StrNum2 = Str(equal)

StrNum1 = StrNum2

Text1.Text = StrNum2

End Sub

Private Sub about_Click()

MsgBox "Create by 周晓阳。1998/7/27", vbDefaultButton1, "VB教程第四章范例"

VB6.0图文实例教程90_vb实例教程

End Sub

Private Sub Command1_Click(Index As Integer)

Select Case Index

Case 0 To 9

If FirstNum Then

StrNum1 = Str(Index)

FirstNum = False

Else

StrNum1 = StrNum1 + Str(Index)

End If

Text1.Text = StrNum1

Case 10

If Not PointFlag Then

If FirstNum Then

StrNum1 = "0."

FirstNum = False

Else

StrNum1 = StrNum1 + "."

End If

Else

Exit Sub

End If

PointFlag = True

Text1.Text = StrNum1

Case 12 To 15

FirstNum = True

PointFlag = False

'还原标记值

If SignFlag Then

Call Run

SignFlag = True

StrNum2 = StrNum1

StrNum1 = ""

End If

Runsign = Index - 11

Case 11

If Not SignFlag Then

Text1.Text = StrNum1

equal = Val(StrNum1)

FirstNum = True

PointFlag = False

Else

Call Run

SignFlag = False

Case Else

Call ClearData

End Select

End Sub

Private Sub Form_Load()

Call ClearData

End Sub

按钮还有两个重要的属性Default(默认属性)和Cancel(取消属性),两个属性都以布尔赋值,把Default设为True,则在按下回车键时,不论焦点处于何处,都会触发该按钮的Click事件,而当Cancel属性被设为True,在按下ESC键时,该按钮的Click属性发生。下面举个例子:

建立一个新窗体和两个按钮,Name属性分别为cmdOK和cmdCancel,把前者的Default设为True,后者的Cancel设为True,Caption属性分别为OK和Cancel。如图4-8。填写代码后运行:

Private Sub cmdCancel_Click()

MsgBox "Cancel按钮被按下", vbDefaultButton1, "提示" End Sub

Private Sub cmdOK_Click()

MsgBox "OK按钮被按下", vbDefaultButton1, "提示"

End Sub

结果如图4-9、4-10:

VB6.0图文实例教程90_vb实例教程

快捷键大家一定都知道,在VB如何实现呢。其实很简单,在刚才的例子里在建立一个按钮Command1,把它的Caption属性设为Click &ME,如图4-11,在M的下面有一条下划线,运行程序,当你按下Alt+M的时候就触发了Command1_Click事件:

Private Sub Command1_Click()

MsgBox "Click ME 按钮被按下", vbDefaultButton1, "提示" End Sub

据我所知,有许多用户有使用快捷键的习惯,注意细节上的问题能够使将来你的程序得到更多人的欣赏,不是吗?

VB教程:第五章-菜单

VB6.0图文实例教程90_vb实例教程

重回菜单设计窗口,接着添加菜单。(按下向左的箭头,可以使菜单

上升一级,Level代表菜单的级别),根据下表添加新的菜单项:

其中Short-Cut就是平常我们说的热键,你可以在菜单设计窗口中找

到,设臵一个你需要的组合键,这样不论窗口的焦点处于何处,菜单

在第几层,只要按下热键,就相当于调用了该项的Click事件。结果

如图5-5。

从Win95以来程序里引入了鼠标右键功能,使鼠标有了更大的用处,

在VB里我们也很容易实现。 打开Form_MouseDown事件,该事件有

两个参数:Button,当按下左键时Button返回1,当按下右键时Bu

tton返回2,;Shift,是指在点击鼠标时按下的键盘键,如Shift、

Ctrl、Alt,这些我们将在以后讨论,但很难避免在一章中不涉及到

不该涉及的内容,学习时有个大概的理解即可。下面在该事件里添加

代码(效果如图5-6):

Private Sub Form_MouseDown(Button As Integer, Shift As Inte

ger, X As Single, Y As Single)

If Button = 2 Then

PopupMenu mnuEdit, vbPopupMenuLeftAlign

Else

Exit Sub

End If

End Sub

在上面的代码中我们用到了PopupMenu方法,它的语法是:

object.PopupMenu 菜单名,标记,X坐标,Y坐标

标记是用来表明弹出菜单位于鼠标指针位臵的,它有三个值:

X、Y值可以用来制定菜单弹出的位臵,可以省略。

关于菜单的Visible、Enabled等属性请自己尝试。

第五章完

VB教程:第六章(1)-输入

VB6.0图文实例教程90_vb实例教程

新建一个项目(project),在Form_load里填写一行代码:

a$ = InputBox("举荐你最欣赏的网站", "最佳网站投票", "VB小驿")’不算无耻吧?:-> 按下F5运行程序,在Form1出现之前先会弹出一个输入对话框,如图6-2。这时,无论你按下OK还是Cancel都是没有区别的,因为我们并没有对输入数据进行处理,下面我们完成一个更加复杂些的程序。

新建一个项目文件,把窗口布局成类似于图6-3的结构,各对象属性如下表:

Label1(3).Enabled = True Label1(4).Enabled = True Text1(3).Enabled = True Text1(4).Enabled = True PosChk = True

Else

Label1(3).Enabled = False Label1(4).Enabled = False Text1(3).Enabled = False Text1(4).Enabled = False PosChk = False

End If

End Sub

接着在按钮中填写代码:

Private Sub Command1_Click(Index As Integer)

VB6.0图文实例教程90_vb实例教程

Dim Prompt, Title, Default As String

Dim xPos, yPos As Integer

Select Case Index

Case 0

Prompt = Text1(0).Text

Title = Text1(1).Text

Default = Text1(2).Text

If PosChk Then

xPos = Val(Text1(3).Text)

yPos = Val(Text1(4).Text)

a$ = InputBox(Prompt, Title, Default, xPos, yPos)

Else

a$ = InputBox(Prompt, Title, Default, xPos, yPos)

End If

Label1(5).Caption = "谢谢您的投票,您的选择是" & a$ & "!"

Case 1

Unload Me

End Select

End Sub

按下F5运行程序,你会看到这样的结果。图6-4,6-5。是不是有种受骗的感觉,啊哟哟,可不是我的错,就是这么容易嘛!

从刚才的例子里,我们接触了一些VB中的输入方法,其实数据输入不仅仅局限于向Text框中输入数据,数据的输入还有许多其他的方法,譬如前面的Check1也是向程序发出一定的信息,

只要是通过操作向计算机发布命令就可以叫做输入,下面我们来一一介绍。

首先要介绍的当然是输入用到最多的Text框。Text没有Click事件,它的缺省事件是Change,也就是当Text框里的一旦内容改变就会激发该事件发生,还是让我们用实例说话吧。 Text有几个特殊的属性,一是MultiLine(多行)属性,MultiLine属性为False的时候,不论文本有多长,它都会在一行里显示下去,换行符无效,当它为True的时候,字符串显示到Text框边缘的时候就会自动换行。另一个与之配合的属性是ScrollBars属性,它有4个值,0到3,分别是没有滚动条,水平滚动条,垂直滚动条,和二者都有,它是一个只读属性,也就是说只有在程序设计过程中才能改变,而不能在程序运行中改变,但是我们可以通过API解决运行中改变的问题,我们放在以后再讲。PasswordChart属性,我们经常在程序操作中遇到要填写密码的部分,为了保密起见,在屏幕上显示的字符一般?*?表示,并且这时是无法用剪贴板的,这在VB中非常容易做到,把PasswordChart中设一个用来代替字符串的字符即可,并不一定是?*?哦。

下面我们完成一个有趣的小程序,是我以前遇到过的一个程序,我对其进行了部分修改。程序的意思是这样的,假设你是一个司机应超速被警察扣留,现在需要你向警察陈述你的理由,如果你的话能打动他,就可以免交罚金,如果你在规定的字数里没有说出什么有震撼力的话,那老兄你可就惨了,交钱吧。J

这个程序比原来的英文程序有了几点不同,第一,由于用到的是双字节中文的中文,所以对于检测中文字符和英文有很大不同,第二,原来的英文程序不管你说多少,警察依然是依法从事,本例中给了犯规者10%的免罚机会(有点无聊……L ,不过也是为了学一些东东嘛)。下面就跟我来设计窗体吧。(如图6-6)

VB6.0图文实例教程90_vb实例教程

还可以为Label1在Font属性里选一个合适的字体和字重。下面我们来看代码:

首先初始化程序:

Private Sub Form_Load()

'把Command1放在水平的中央

Command1.Top = Label2.Top+200

Command1.Left = (Form1.Width - Command1.Width) / 2

'重叠三个图片框

Picture2.Left = Picture1.Left

Picture2.Top = Picture1.Top

Picture3.Left = Picture1.Left

Picture3.Top = Picture1.Top

End Sub

下面我来讲一讲程序是怎样运行的,我们将用到Text的Change事件,每当字符串改变一次就对它进行一次检查,算出已经说的字数,当字数超过10时,下面的红绿灯会变成黄色,并且在这时随机抽取一个数,它在一个范围内出现的可能是10%,如果在这个范围内就可以免交罚金,如果不在范围则继续,当文字超过20的时候,红绿灯会变成红色,再一次抽取随机数字,步骤同上,如果30个字已满,再进行一次检查,如果你真的那么不幸就该罚款了。

程序的步骤清楚了,我们在来看看程序的要点。由于中文是双字节字符,也就是说一个汉字占两个ASC码的位臵,而VB显然是为英语国家设计的用Len函数无法返回汉字字节,也就是说一个汉字和和一个ASC字符在Len函数中得到的值是一样的,这就需要特殊处理。用Asc()函数,在括号内放入一个ASC字符或字符串,它会把第一个ASC码转化为0-255的数值,而把一个汉字放入,它的值必然不在0-255,这也就可以作为判定汉字的基础。我们可以把英文算作半个汉字。

下面我们来看看代码:

在General 里声明窗体级变量:

Dim Level As Integer

Private Sub Command1_Click()

Unload Me

End Sub

Private Sub Text1_Change()

Dim StrLength As Integer’字符串长度

Dim RandomNum As Single’随机数

Dim Str1 As String

Dim a As String

Dim i, Temp

StrLength = 0’每次开始时把字符串长度还原为0

a = Text1.Text

For i = 1 To Len(a)’Len(a)代表字符串的长度

Temp = Asc(Mid$(a, i, 1))’挨个取字符

If Temp > 255 Or Temp < 0 Then’不是ASC码

StrLength = StrLength + 2

Else

StrLength = StrLength + 1

End If

Next i

StrLength = StrLength / 2

Select Case StrLength

Case 0 To 9

Picture1.Visible = True

Picture3.Visible = False

Label2.Caption = "慢慢说。你还有" & Str(30 - StrLength) & "个字可以说" Level = 1

Case 10 To 19

If Level = 1 Then

RandomNum = Rnd * 10’得到随机数

If RandomNum <= 10 And RandomNum > 9 Then

Text1.Enabled = False

Label2.Caption = "很抱歉这是个误会……"

Command1.Visible = True

Command1.Caption = "您可以离开了"

End If

Level = 2

Else

Picture2.Visible = True

Picture3.Visible = False

Str1 = "怎么还没说完!"

Label2.Caption = Str1 & "你还有" & Str(30 - StrLength) & "个字可以说" End If

Case 20 To 29

If Level = 2 Then

RandomNum = Rnd * 10

If RandomNum <= 10 And RandomNum > 9 Then

Text1.Enabled = False

Label2.Caption = "很抱歉这是个误会……"

Command1.Visible = True

Command1.Caption = "您可以离开了"

End If

VB6.0图文实例教程90_vb实例教程

Level = 3

Else

Picture1.Visible = False

Picture2.Visible = False

Picture3.Visible = True

Str1 = "我已经不耐烦了!"

Label2.Caption = Str1 & "你还有" & Str(30 - StrLength) & "个字可以说" End If

Case Else

Text1.Enabled = False

Label2.Caption = "你已经没有机会了!"

Command1.Visible = True

Command1.Caption = "交钱吧,肇事犯!"

End Select

End Sub

中间有几个函数需要解释一下:

Mid可以从字符串中取出一部分,返回字符型,格式:

Mid(字符串,从第几个字符开始,取字符的长度)

Asc

可以把字符转换为

ASCII

码,格式:

Asc(字符串)

Rnd,取得大于0但小于1 的数值,可以没有参数。

怎么样,十分简单吧,我们将在下一次继续讨论VB的输入机制,再见!

VB教程:第六章(2)-输入(2)

VB6.0图文实例教程90_vb实例教程

然后,我们通过一个叫做addstar的函数为字符串加上星号,以前曾说过函数与过程的分别,函数会返回一个函数值,所以addstar也就相当于一个变量,其实这很好理解,就象中学代数中的函数,函数就相当于变量Y,而函数中的参数则相当于自变量X,当然可能有很多自变量X1、X2……请原谅,我并不想在这里上数学课,因为我厌恶那玩意儿,特别是上了大学之后,好在大二以后就再也不会有数学课了,哈哈……

Function addstar(tempword As String) As String

Dim charindex%

Dim pasteword$ '加星号后的字符串

For charindex = 1 To Len(tempword)

If Mid(tempword, charindex, 1) = " " Then '如果字符为空格 pasteword = pasteword + "*"

Else: pasteword = pasteword + Mid(tempword, charindex, 1) End If

Next

addstar = pasteword '返回函数值

End Function

下面的代码很简单,并且我为它做了注释,就不再一一解释了,我只想简要的提几句,Ltrim和Rtrim只有一个参数(字符型),另外下面用到了焦点事件,我们曾在第三章中介绍过,当Text1得到焦点(GotFocus)时,清空所有的文本框,当它失去焦点(LostFocus)时,对字符进行addstar并且在Text2中显示。

Private Sub Text1_GotFocus() '但焦点于Text1

'清除所有文本框中的字符

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

End Sub

Private Sub Text1_LostFocus()

Dim Origionword As String

Origionword = Text1.Text

Text2.Text = addstar(Origionword)

LTrimmedword = addstar(LTrim(Origionword))

RTrimmedword = addstar(RTrim(Origionword))

LRTrimmedword = LTrim(RTrim(Origionword))

End Sub

Private Sub Option1_Click()

Text3.Text = LTrimmedword '显示删除左空格后的字符串 End Sub

Private Sub Option2_Click()

Text3.Text = RTrimmedword '显示删除右空格后的字符串 End Sub

Private Sub Option3_Click()

Text3.Text = LRTrimmedword '显示删除两边空格后的字符串 End Sub

最后结果如图6-9。

与无线钮相对的是检查框,在同一范围内一组无线钮只能有一个被选中,而检查框则可以有多个选择,就象在添表时,性别那项只能有一

个选择,而在描述你以前的职业时可以有学生、程序员、家庭教师或者什么,总之有很多选择,下面我们举一个简单的例子加以说明。 假设编写了一个共享软件,在让用户注册的时候你想知道你的用户使用的计算机情况,你就需要一个调查表,为了使这个调查表不止枯燥,可以在这个程序中加入一些图形。新建一个项目文件,窗体布局如图6-10。

程序很简单,一共有两个框架(Frame1和Frame2),它们的Caption分别为?选择你的计算机拥有的配臵?和?这是你的计算机系统?,在Frame1有四个检查框(Check1到Check4),Caption分别为?网络系统?、?鼠标?、?密码保护?和?电子邮件?,另把Check4的Enabled属性改为False,使其无效;在Frame2中放臵四个图片框(Picture1到Picture4)与四个检查框向对应,请把所有图片框

的BorderStyle属性设为0(无边框),它们的Picture属性请根据上图,在存放图标的目录中找到相对的图标。下面是程序代码: Private Sub Check1_Click()

If Check1.Value Then

Check4.Enabled = -1

Picture1.Visible = -1

Else: Check4.Enabled = 0

Picture1.Visible = 0

Check4.Value = 0

Picture4.Visible = 0

End If

End Sub

Private Sub Check2_Click()

If Check2.Value Then

Picture2.Visible = -1

Else: Picture2.Visible = 0

End If

VB6.0图文实例教程90_vb实例教程

End Sub

Private Sub Check3_Click()

If Check3.Value Then

Picture3.Visible = -1

Else: Picture3.Visible = 0

End If

End Sub

Private Sub Check4_Click()

If Check4.Value Then

Picture4.Visible = -1

Else: Picture4.Visible = 0

End If

End Sub

这个程序比我们见过的任何程序都简单,就不再做说明。

VB教程:第六章(3)-输入(3)

VB6.0图文实例教程90_vb实例教程

为了把十进制数值换成十六进制数值,要使用一个叫做Hex()的函数,它把十进制数值转化为十六进制的字符,但对于只有一位的十六进制字符,这个函数并不在高位补零,为了视觉上的正确,我设计了一个小函数帮助它给一位的十六进制字符补零.

程序代码很简单,见下:

Dim RedStr, GreenStr, BlueStr As String’RGB的字符 Dim RedNum, GreenNum, BlueNum As Integer’RGB的数值 Function GetColorValue() As String

‘获得输入值

RedNum = HScroll1(0).Value

GreenNum = HScroll1(1).Value

BlueNum = HScroll1(2).Value

RedStr = Hex(RedNum)

If Len(RedStr) < 2 Then RedStr = "0" + RedStr’补零 GreenStr = Hex(GreenNum)

If Len(GreenStr) < 2 Then GreenStr = "0" + GreenStr BlueStr = Hex(BlueNum)

If Len(BlueStr) < 2 Then BlueStr = "0" + BlueStr

GetColorValue = RedStr + GreenStr + BlueStr’合并

End Function

Private Sub Form_Load()

‘初始化程序

Text1.Text = GetColorValue

Picture1.BackColor = RGB(RedNum, GreenNum, BlueNum)'RGB函数返回颜色值

End Sub

Private Sub HScroll1_Change(Index As Integer)

‘当滚动条被改变时

Text1.Text = GetColorValue

Picture1.BackColor = RGB(RedNum, GreenNum, BlueNum) End Sub

运行如图6-13。

列表框(ListBox)和复合列表框(ComboBox)也是我们经常见到的视窗元素,我们从它所列示的条目中选出所需的,两种列表框只是在外观上略有不同,但从本质和操作方法来说它们是很相象的,它们也有一些特殊的属性:

List属性,你可以利于该属性象列表框或复合列表框中添加条目,但也可以在程序设计中通过AddItem方法添加。

ListCount属性,返回列表框或复合列表框中条目的数目。

ListIndex属性,表示列表框或复合列表框的第几项条目。(从0到ListCount-1)

Sorted属性,可以通过该属性对列表框或复合列表框中的条目根据字母顺序排序。

MultiSelect属性,0表示不能多选,1表示简单多选,2表示宽展多选,仅限于列表框。

Columns属性,表示条目是以一列显示还是两列显示,仅限于列表框。 Style属性:表示列表框或复合列表框以何种风格显示,二者参数不同。

举两个简单的例子。

例子一,建立一个新项目文件,在Form1上添加一个List控件,调整适当的尺寸,无需改变任何属性。填写以下代码。

Private Sub Form_Load()

With List1

.AddItem "0-Default"

.AddItem "1-Arrow"

.AddItem "2-Cross"

.AddItem "3-I-Beam"

.AddItem "4-Icon"

.AddItem "5-Size"

.AddItem "6-Size NE SW"

.AddItem "7-Size NS"

.AddItem "8-Size NW SE"

.AddItem "9-Size WE"

.AddItem "10-Up Arrow"

VB6.0图文实例教程90_vb实例教程

.AddItem "11-Hourglass"

.AddItem "12-NoDrag"

.AddItem "13-Arrow And Hourglass"

.AddItem "14-Arrow And Question"

.AddItem "15-Size All"

End With

End Sub

Private Sub List1_Click()

MousePointer = List1.ListIndex’这里的MousePointer是窗体全局内的属性

End Sub

当你点在不同项上面鼠标指针也会随着改变,如图6-14。

AddItem方法语法如下:

ListObject ?字符串?,数值

字符串后的数值可以指定条目加入在第几个条目的位臵上,如果没有的话,添加项将逐次排下去。

下面举一个复合列表框的例子,例子通过选择复合列表框中的选项来改变文本框的字体。请新建一个项目文件,在窗体中添加一个ComboBox(Combo1)和一个TextBox(Text1),添加如下代码。 Private Sub Combo1_Click()

Text1.FontName = Combo1.List(Combo1.ListIndex)

End Sub

Private Sub Form_Load()

With Combo1

.AddItem "宋体"

.AddItem "隶书"

.AddItem "黑体"

.AddItem "楷体"

.ListIndex = 0'把第一个条目作为初始项

End With

Text1.FontSize = 30’放大字体

Text1.FontName = Combo1.List(0)’初始字体为?宋体? End Sub

如图6-15。

(第六章完)

VB教程:第七章-输出

VB6.0图文实例教程90_vb实例教程

说了这么多,可能你已经不知所措了,不过看过下面的例子后,相信一切都会迎刃而解。

首先建立一个新项目文件,并添加以下对象(见图7-1)――一个Button(Command1),两个ComboBox(Combo1和Combo2),不要对其属性做更多的修改,只需把Command1的Caption改为?Click Me?。这个程序的目的是自由组合上面的按钮值,以显示各种消息框,并且返回按下的按钮,Combo1和Combo2分别用来选择按钮值,首先在Form_Load中初始化程序:

Private Sub Form_Load()

Combo1.AddItem "OK"

Combo1.AddItem "OK and Cancel"

Combo1.AddItem "Abort,Retry and Ignore"

Combo1.AddItem "Yes,No,Cancel"

Combo1.AddItem "Yes,No"

Combo1.AddItem "Retry,Cancel"

Combo1.ListIndex = 0

Combo2.AddItem "危险"

Combo2.AddItem "询问"

Combo2.AddItem "警告"

Combo2.AddItem "信息"

Combo2.ListIndex = 0

End Sub

ComboBox的用法已经在上一章中讨论过,在此不再赘述,ListIndex属性用来把第一个元素放在选择位臵。

但是如何显示需要的按钮和图标呢?很简单,只需把它们相加,比如说要显示OK、Cancel按钮和警告的图标,只需把1和48相加,得到49即可,于是我们在Command1中填写这样一行:

Private Sub Command1_Click()

message = MsgBox("显示" & Combo1.List(Combo1.ListIndex) & "和" & Combo2.List(Combo2.ListIndex), Combo1.ListIndex + (Combo2.ListIndex + 1) * 16, "消息演示")

End Sub

因为图标值是从16开始的所以要把Combo2的ListIndex加1再乘以16。

小知识:按钮值并非简单的相加

按钮值并非简单的相加,我们知道,在计算机里最终的语言是机器语言,而机器语言是以0和1的二进制表示的,在这里用到的实际上不是相加,而是逻辑操作符?OR?,你知道OR和AND是怎样工作的吗?正如你所知,True And False得到False,而True Or False得到True,这是怎么形成的呢?我们有时也用0代表False,用1或-1代表True(其实,只要非零都可以代表True),而0和1在二进制中还是本身,于是True、False的运算就变成的0 和1的运算,我们可以把And叫做补0运算,把Or叫做补1运算,当用And处理两个

二进制数的时候,它们逐位比较,如果相同的位上都是0或都是1则没有变化,而如果一位上是0,另一位上是1,最后结果上相应的位上就变成0。比如1010(十进制中10)And 1101(十进制中13),最后就得1000(十进制中8),相同的Or亦是如此,只不过在不同的地方补1。在位数不同时,前面补0,你可以在VB中试试看。但为什么要讲这些呢,原因是我不想让大家真的以为这个例子中就是相加,只不过碰巧它们的0和1处在不同的位臵上,并且这个小知识在今后的位图操作和API操作中很有用处。

下面在来判断用户按下的按钮。

Private Sub Command1_Click()

message = MsgBox("显示" & Combo1.List(Combo1.ListIndex) & "和" & Combo2.List(Combo2.ListIndex), Combo1.ListIndex + (Combo2.ListIndex + 1) * 16, "消息演示")

Select Case message

Case 1

MsgBox "你按下了OK钮"

Case 2

MsgBox "你按下了Cancel按钮"

Case 3

MsgBox "你按下了Abort按钮" Case 4

MsgBox "你按下了Retry按钮" Case 5

MsgBox "你按下了Ignore按钮" Case 6

MsgBox "你按下了Yes按钮" Case 7

MsgBox "你按下了No按钮" End Select

End Sub

运行程序,结果如图7-2,7-3。

VB6.0图文实例教程90_vb实例教程

第七章未完待续

VB教程:第七章(2)-输出(2)

VB6.0图文实例教程90_vb实例教程

Dim FormatExp As String

Dim ThisTime As Date

Private Sub Command1_Click(Index As Integer)

FormatExp = FormatExp + Command1(Index).Caption

Text1.Text = FormatExp

End Sub

Private Sub Command2_Click()

a$ = Format("1234567890.0987654321", FormatExp)

Label1.Caption = "格式化后的数值:" + a$

Text1.Text = ""

FormatExp = ""

End Sub

Private Sub Form_Load()

ThisTime = Now

Label2.Caption = ThisTime

End Sub

Private Sub Option1_Click(Index As Integer)

Text2.Text = Format(ThisTime, Option1(Index).Caption) End Sub

其中0和#代表数值显示的位数,不同的是如果定义格式化表达式的位数如果多于原表达式,则使用0则补0,使用#则省略0;?.?用来指定小数点的位臵;其余字符用来分割数值,如?,?。 结果如下图:7-2-3。

关于时间的格式化表达式的定义方法如下表:

好吧,第七章的内容就讲完了,在第八章中我将把VB的简单绘图知识教给大家,下次再见!

如何成为一名优秀的程序员?

VB6.0图文实例教程90_vb实例教程

现在的程序员比起十年前是不是要花更多的时间来 查帮助呢。系统越来越大,手册越来越厚,软件开发的 周期是不是越来越多的淹没在查帮助之中了呢。

实际上一个程序员最终的技术需要和实际相结合。真正在编写程序到达一定时候,语言的使用并不是最大的障碍,对整个项目的把握、软件工程的把握、数据库的设计以及执行效果的分析等等才是需要进一步考虑的东东!否则,为何大多数公司到要求有编程经验了!这些不是程序员必须学的。但数据结构,编译原理,操作系统原理等是必须要学好的,英文的多看,不懂计算机英语可不行。其实我不是什么中专生,而是我读的中学和一个私人办的电脑学校联合开的电脑专业(并不是我中考考的差,而是这个学校太贪钱了,才被录取到这里,恼火,我们班里中考成绩从两百多到四百多的都有,我就是四百多分(重理轻文的结果,要不然...),当时读书的时候,我是班是的高手(其实只是比其它同学懂而已),大家叫我dos,因为当时学的都是dos的内容, 毕业后还没有对编程很感兴趣,只想找一个电脑的工作就可以了,哪怕是打字的,可是看报纸,去人才中心,看到都是要大学的,为此感到很失望.也对电脑失去了兴趣.后来学校打电话到我家,说厦门厦华公司要招工,要不要去,我很快就答应了,因为当时没工作,天天呆在家里.后来打工的时候,天天象一个机械人一样,重复着同一道工序,因此经常在深夜的时候,思索着自己的未来,由此重新生起了对电脑的感情,因此经常买电脑杂志和报纸看(可以堆成一座山了).由于离我住的地方不远处,有一个电脑培训的,所以经常到那里上机,而在学

校里学过的软件也只有FOXBASE和WPS,其它的不值一提,所以上机经常用foxbase,直到这时候,才对编程产生了浓厚的兴趣,一年后,自已买了一台电脑,开始认真学习编程.由于我是属于职业中专的,因此经常想,就算学得再好也没有用,所以想考程序员,而考程序员要懂得c语言,所以就学习turbo c,学完了,学数据结构,同时看'C高级实用程序设计',澳门回归和2000年的两个晚上,我都是在编程中度过的. 由于我这个人对书很感兴趣,经常在星期六,星期七去书店,而在书店里,也是看编程方面的书,而看到的编程书籍大部份都是windows方面的,为此也经常思索着学dos编程到底有没有用.后来,春节放假(要2月13日上班)回老家,天天去新华书店(正月初一也去),看到也都是windows编程方面的书多得像狗屎一样,所以就下决心学windows编程,因此正月初四(快餐店还没有开张)就去厦门了,很快买了delphi的书和d版delphi5,疯狂地学习(到目前为止,买了8本delphi的书,因为国人的写的书实在太烂),而由于遇到不懂的又不知道怎么办,为此想到了网络,但在外打工不可能上网(上网吧太贵),所以就辞职了(4月21日),现在,程序员考试快到了,是报还是不报一直犹豫不觉,困此才有此问题.打工的岁夜,我永远不会忘记,因为付出太多了,也失去了太多(坏了两个光驱,瘦了几斤),直到现在,脑海里还不时浮现起那几个无眠的夜晚.忠心感谢大家.

我不认为编码的人就是机器, 而系统分析就不是机器, 其实系统分析员就是销售的机器, 所有职员有是老板的机器.它们之间这是

不同工种吧了, 当然对系统分析要求要高一些, 薪水也高一些, 但更让人佩服的是销售, 是他们驱动了整个的运作.我也是个中专生, 还是学机械的(后来自学了计算机), 我非常了解在传统的制造业是如何的规范, 设计人员设计图纸, 然后经审核, 再到车间试样, 再根据情况, 修改图纸, 如此反复几次后才能一个产品定型,而在软件界, 就没那么好了, 领导会说, 这个你做, 那个他做, 也没有经过很细的分析(国内很多都是这样), 在我们这里也没有系统分析员, 每个人都是设计员, 也是编程员, 虽然这样对个人来说, 能学到很多东西, 但不利于项目.我国的软件过程水平,确实令人担忧, 目前为止只是, 几个人十几个人的小软件, 还没有能拿得手的大型软件. 至于中专生编程问题, 我认为只要入了这个行, 就不会比本科生差, 因为对他来说没有优越的学历条件, 那么只好埋头苦学, 但这正好适应当前计算机软件迅速发展的今天, 学历只能代表过去和基础, 更需要的是有能力的人, 解决问题的人, 实干的人.对我来说确实有时有点自卑, 没有上过高中和大学(由于那个年代, 我只知道能为父母减少一点负担就行了), 所有我一直在努力的学习(corba, uml, java, 软件过程等), 目前为止我并没有觉的我的构架能力和编码水平比他们差, 只是觉得E语言实在太差.过计算机本科又如何?我有几个同学到银行去搞业务了,有同学任教,有同学收税去了......60多个人真正现在搞计算机的还就只有几个人,再看看当时这些计算机本科生的毕业设计,//faint有的人到最后连vb都搞不定,但他们什么编译原理啦什么组成原理啦什么软件工程啦学的(应

该是考试的分数)真还不错,至少我感觉有些概念比我清楚(上课没听?)所以我觉的中专生并不比一般大学生差(当然有些重点学校除外//hehe),有时中专生有更大的压力逼迫自己去学习,学历不是重要的,关键是一个人的素质.我们不能将目标定位在做程序员或编码员(Coder)上光会写代码有什么用?那叫?编码员?,在国外是属于体力劳动的,不像国内,会写程序的就叫高科技。重要的是分析问题、解决问题和规划的能力,系统分析,系统设计及项目规划才是正途。这就需要学习所谓的基础课程了,如:软件工程、离散数学、数据结构等等。

从vb到现在开始学vc后,一个人捣鼓了几天也没有什么新发现。跟本不知道VC的编程思想是什么,请大虾们告诉我,它和VB的差别真是太大了。VC的博大在于MFC的操纵,它是Win32API的封装.思想在于怎样了解MFC的内幕,它的运行机制.差别也大,差别也不大!这要看你对API的理解了,虽然VC++的可视化没有VB的好,但是不是绝对没有的,其对而且对话框的编辑是跟VB一样的,不过不是像VB那样放在第一个界面罢了,VC++的博大精深是VB难以望其项背的!:)而且VC++是完全面向对象的编程工具,而VB是不够完全的面向对象编程工具,VC++是完全编译语言,VB是本地编译语言,不够完全,VC++效率高,封装性好,继承性高,VB效率相对低了很多,但界面友好,二者只能取其一,或者使用VC++,VB辅助(因为VB开发快),当然Delphi,BCB也是不错的选择。

程序员不应依赖开发工具,程序员更应该拥有的是一种思维、一种精神、一种观念。就像Richard.M.Stallman一样,有自己的精神,为自由软件而奋斗。就像求伯君,为民族软件的振兴而奋斗。这才是真正的程序员。

应该说,他们更注重的不是技术,而是软件的思维,软件的灵魂!!我刚学VC的时候,还没有上网.身边也没有一个可以问的朋友,所以大部份都是自己啃的.那种感觉真是很痛苦. 现在在网上就不同了,可以得到太多的资料了,而且还可以得到在线帮助.但这些都不是学习的关键. 相信各位也知道VC的难度,并不是那么容易上手的,所以要想学会,学好VC,靠外力是不可能的.主要得靠自己.

自己要有一份难得的毅力,对编程的狂热也可以在一定程序上起到帮助.我就是这样的.起初,没有人帮我,我学习VC是三天打鱼两天晒网,学习进度很慢,幸好对编程的执著,使得自己坚持下来了. 如果你从来就没有接触过编程,那你学习VC的速度可能会比学过面向过程编程的人要慢一些,因为你要去理解命令及语句的含义.但只要你努力,并且可以得到别人的帮助,我相信在半年内会对VC有一定的认识. 请学赤面向过程编程的朋友也不要笑,因为面向过程与面向对象实在是区别太大了.就拿封装一词来说吧.当初我是左想右想才想通的.所以不要自己学过编程,就会在学习VC的通道上比别人轻松.

VB6.0图文实例教程90_vb实例教程

现在有一种现状应该让我们注意.我发现有很大一部份初学者觉得VC是一种语言,C++又是另一各语言.我在和一些初学者的交谈当中,查觉到了这一点.有的初学者竟然还认为我学VC为什么就一定要学C++?我想这个问题是我们大家都没有注意到的一个问题.就是向初学者讲述C++对VC学习的重要性. 我这有个例子,跟大家讲一下. 我有个同学,他接触编程比我要早,在我还在为VC中"::"符号怎么标记的时候,他已经在学习C了.后来,我对VC稍有理解的时候,他也发觉C的跟不上时代的脚步了.我便提议他从C++语言学起,可他认为自己有C的学习功底,根本就用不着再去学习C++.可在学习VC的当中,遇到的困难真是数不胜数.最近,他还是去买了一本学习C++的书.从头再来学习C++. 我希望通过这个例子,能让广大的初学者知道,C++对VC学习的重要性。

学习VC必须有狂热的编程热情,否则是很难坚持下来的,我周围就有几个这样的人,他们比我先学VC近半年,但现在仍然学不会,而我现在虽说不是很厉害,但基本的应用程序是不在话下,我就是天天看书,上机实践,几乎所有的时间都泡在里面,有时连吃饭都在想,为什么,因为我确实想啃下这块硬骨头,我不想半途而废,我觉得学习VC不仅仅是学到了更多的东西,最主要的是培养了我们自己一种坚持克服困难的毅力。

对于VC,我有几点经验:

1。技术为本,语言为次.

2。MFC的单个类有用,DOC/VIEW要小心。

3。OOP要小心,使用不当反而造成大量的工作和糟糕的代码。

4。如果可能,考虑选择使用Delphi(CBuilder+VCL)。

5。到了一定程度,一定要学COM。

要学VC,必须有对C++深刻的理解,对WINDOWS运行机制的深刻理解。尤其想成为VC高手。举例 , 对于虚函数,不仅要知道有这么一个东东,更要知道它的内存镜像 。这样才能对VC中很多的东西举一反三,事半功倍。本人学习VC近2年,但自觉第一年由于心情浮躁,把VC的书翻了一遍又一遍,却每次都只看了一点就无法再深入。直到毕业前夕,痛定思痛,克服浮躁,认认真真的从最基本的开始学,把每一点都搞的水落石出,经过三个月的刻苦,终于大成。直到现在,半月搞定COM/DCOM,都托当日刻苦之福,因此劝告想学VC的朋友,一定要顶住开始的艰难岁月。成功属于刻苦者。

每个人都有自己的学习方法,也许这种方法对我来说有用,但不见 得就对所有的人有用.所以,请不要盲目的跟着别人的学习方法学习,要思考属于自己的学习方法. 但我还是会向大家说出我自己认为比较好的一种方法. 学习编程其实与学习其它东西一样,要想掌握它,就要实践,实践,再实践.当你学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法. 这个实践不是照著书上的例子做一遍,而是根据自己的能力,给自己出题,然后去完成它.只有这样,你才能发现自己的不足,同时又增加了自己的编程经验. 但要成为合格的程序员,光会写代码是远远不够的,更重要的是思考.谋定而后动,是 不变的真理.

在我的理解,VC只是一个编程工具,就如BC、BCB、Delphi 一样,其实对于编程最根本的就是三个方面,语言、开发包、 操作系统API,他们三个方面应该说是相对比较独立的。

VC是MS开发的,所以针对的是windows api,你可以不会C++, 也可以在VC下用C写出很优秀的程序,当然如果你比较熟练C++, 并且熟悉开发包MFC的话,工作可能要轻松不少。所以在我看来,学习的过程可以是这样的:

1、先学习C或C++,在windows的console环境下编写不太深入涉及API的程序;

2、在基本上掌握了语法之后,开始接触简单的系统API,学习 Windows的编程原理和机制;

3、在可以编写简单的菜单程序,可以简单地在WM_PAINT下操作 GDI函数后,开始学习MFC,可以从Step tourist学起,看MFC的源代码,理解几个关键的宏的定义与实现,特别是MESSAGE MAP。 在学习的过程中为了给自己增加点挑战,尽量不要使用resource edit,试着自己编码实现控件的创建,消息的响应。 再就是看自己的造化了,动手做一些小工具,特别是自己平常需要的,对自己的提高也应该是很有帮助。 究竟我们要的是结果!良好的分析问题高效清晰地肢解问题的能力才是我们真正要不断学习的吧?

和学习其他知识一样,重要的是获得提出问题,分析问题,解决问题的能力,不是为编程而学习,你具有什么样的思想,就会写出什

么样的程序。学一门语言,不能仅仅是语言,要注重语言背后的思想方法,看他是如何来解决某一问题的,为什么要这样去做,他总是要符合客观事实的,就像人说的话一样,存在某种逻辑,数据的组织,信息的传递,靠你自己的头脑去建立,然后看C++中有什么可以帮你的,该怎么样用他来表达自己的想法。只要你认真实践,努力去做,寻求乐趣,就会达到目标。我虽然 真正认真学习编程的时间不长,但现在我是认真的,就有了以上的体会。

学习VC++有相当的内容要学,而最后的深度则看个人的悟性与勤奋了。

1)掌握最新标准的C++。(2个月)

如果曾经在大学里自以为学过C/C++,还对dynamic_cast/static_cast/template/try/catch/throw/stl/...感到陌生,那你该Refresh一下新的ANSI C++标准了。 ----此与VC++无甚关联,g++/bcb均有所支持。

2) 学习SDK编程;:-O (6个月) 痛苦是暂时的,必要的,坚持就是胜利! 建议用Lccwin32/Masm32/Tasm编写小而精的工具软件; "Windows Programming Guide." "Advanced Windows programming "

3) 研究MFC源代码。(6个月)

不要被一大堆的宏所蒙蔽,just track and dig into it!! 在

知道MFC如何扩展,包装SDK之后,自可功力渐进,不被其MFC系统框架所困绕。"MFC Internals"

4) 研究OLE/COM技术。

COM/ActiveX技术是MS的核心技术,只有彻底洞察其理论精髓才可以体会现在的

操作系统的技术趋势,以不变应万变。

"Inside Ole 2"

***几点建议***:

1) Delphi/BCB/VB可以很快构筑界面,但对于想真正学习、理解系统不是一个好的平台,但如果有时间读一读VCL的源码,看看Borland是如何封装系统的,也可借鉴不少。

2) 学习ASM对理解C++有很大益处。Soft-ICE也是和VC++结合在一起的好工具;

3) 语言本身是皮毛,算法是筋骨;无论高级语言如何发展,在理解操作系统的基础上不断自我创新的能力是源源不断的;如果精髓一旦了然于胸,选择何种开发工具都可以驾御,一见如故了。

每个人学习的过程都会不同吧,我在98从TC转向VC时,对Windows的消息机制一点概念也没有,对着个MFC不知所措,几个月下来一点进展也没有。我于是暂时转向win32位编程。整整一年时间吧,我就是与API打交道,连编辑菜单条对话框等资源文件时也用Uedit32手工编写,为的是希望能对编译器的全过程有个感性的了解。之

VB6.0图文实例教程90_vb实例教程

后我再转向MFC时,果然发现两者是相通的,虽然有一定的区加,不过有了win32位编程的基础再看MFC 时会发现它比win32位编程要方便了太多。 现在市面上的VC书很多,不过大多是入门书。我以为要精通VC(只是以为,本人自已距精通还远的很)应该多看多写程序,看书只能是入门,会用了而已。我不赞成滥用ActiveX,一来我以为它的性能很成问题,真是又大又慢又不稳定(可能是我有点偏激了吧),二来用了它您的程序今后就要被别人牵着鼻子走了。有次我用了个控件,程序都写了大半了,它给我来个继续使用请支付333美元,我两个多月的工钱,烦不烦人?现在我尽可能用别人写的类源代码(我已收集各类代码3-400MB了),一样用起来方便,还能边用边学,必要时还能自已改造。

我以为在现代的网络时代,资料到处都有,无论什么先进的技术,今天我不会我只要查到资料,快的学上几天慢的一两个月我也能学会,现在已没有写不出的程序了,写不出是因为你没有耐心写完它。我以为现在的程序员不一定要多么聪明,而更需要他有完成枯燥项目的耐心,找BUG的细心,对于金钱的平常心(不要为了早日拿到钱而赶进度),最后最重要是有顾全大局,团队协作的精神。 最后,王靖朋友的经历与我实在是有点相似,算是同病相伶吧,真心祝您早日实现自已的人生目标!学习VC是一项费时费力的艰苦学习过程。为了真正用好VC,你 不得不先从OOP开始学起,也许浏览一本纯理论的书要更有意思。 你将从另外的角度考察OO思想。接下来学习C++,学习WindowsAPI 学习MFC,剖析MFC,扩充MFC,创造自己的类库(不

要企图写一个 和MFC同重量级的类库)。如果能够精通Microsoft C编译器的各种 参数,你就可以开始研究微软C/C++语言编译器的进化历史(结合 各种背景知识)。 掌握了编程的思想,征服VC只是时间问题。

学习VC是接受微软技术体系的过程。所需要学习的不仅仅是C++,MFC。 需要学习所有微软的技术,包括Windows编程,Win32系统(实际上 Win32系统实现了很多我们在屏幕上能看到的东西,最起码NT的内核 并不大),COM(深入研究它,理解对象是如何跨越进程边界的,最终 能够自如地在Exe中实现自己定义的接口才算到家了。不过这多少有些 不太必要。),DCOM,ctiveX,Windows DN

A... 如果你想成为大拿,学吧,没完没了。最起码,使用VC,你甚至于可以开发自己的操作系统(当然与MFC没有一点关系)。

三 : VB6.0教程-入门

第1章
步入VB开发之门
?了解Visual Basic 6.0的发展历史 ? 熟悉Visual Basic 6.0的开发环境 ? 熟悉使用Visual Basic 6.0管理工程

?创建第一个VB应用程序

1.1 关于Visual Basic 6.0
? Visual Basic简称VB,是微软公司推出的一
款功能强大的软件开发工具。Visual 意即可视的、 可见的,指的是开发像Windows操作系统的图形 用户界面的方法。 Basic 实际上是一个短语的缩写,这个短语 就是 Beginners all_purpose symbolic instruction code ,其中文意思为“初始者通 用符号指令代码语言”。

Visual Basic 6.0简介
Visual Basic的发展过程 1991年,微软公司推出了Visual Basic 1.0。 1992年,推出了Visual Basic 2.0。 1993年,Visual Basic 3.0上市。 1995年,Visual Basic 4.0随之问世。 1997年,推出Windows开发工具套件Microsoft Visual Studio 1.0,其中包括了Visual Basic 5.0, 1998年发布的Microsoft Visual Studio 98则包含了

Visual Basic 6.0。

Visual Basic 6.0简介
Visual Basic版本
学习版:适用于普通学习者及大多数使用 Visual Basic 开发一般 Windows 应用程序的人员。

专业版:包括了学习版的全部内容功能以及Internet控件开发工具之类
的高级特性,为专业编程人员提供了一整套功能完备的开发工

具。
企业版:包含专业版全部的内容,还有自动化构件管理器等工具,使得专 业编程人员能够开发功能强大的组内分布式应用程序。

Visual Basic 6.0简介
Visual Basic6.0的特点 1、 易于学习和使用 Visual Basic基于图形界面的开发环境使开 发者对各种功能一目了然、容易理解。 2、开发高效,功能强大 程序员可以轻松使用Visual Basic提供的各 种功能组件快速搭建一个应用程序。 3、广泛的用户基础 Visual Basic是世界上使用人数最多的语言 之一,更多的的开发者会带来更多的思想,更 多的交流和更多的使用机会。

1.2 认识Visual Basic 6.0的开发环境
Visual Basic 6.0启动与退出 1、Visual Basic 6.0的启动 选择【开始】?【所有程序】?【Microsoft Visual Basic 6.0 中文版】?【Microsoft Visual Basic 6.0 中文版】菜单命令,即可 启动Visual Basic 6.0。 2、 Visual Basic 6.0的退出
? 单击窗口右上角的【关闭】按钮。 ? 选择【文件】?【退出】菜单命令。

1.2 认识Visual Basic 6.0的工作界面
【新建工程】对话框

1.2 认识Visual Basic 6.0的工作界面
主窗口
标题栏 工具栏 菜单栏 窗体设计器窗口 工程资源管 理器窗口 工程窗口 工具箱 属性窗口

窗体布局窗口

1.2 认识Visual Basic 6.0的工作界面
窗体设计器窗口 简称窗体(Form), 是最终用户看到的软件界面, 应用程序的运行结果、各种 图形、图像、数据等都是通 过窗体或窗体中的控件显示 出来的。

1.2 认识Visual Basic 6.0的工作界面
工程资

源管理器窗口 工程是指用于创建一 个应用程序的文件集合。 工程资源管理器窗口 含有建立一个应用程序所需 要的文件清单。

1.2 认识Visual Basic 6.0的工作界面
对象列表框

属性窗口 属性窗口主要是针对窗属性显示方式 体和控件设置的,在Visual Basic中,窗体和控件被称 属性列表 为对象。每个对象的特征都 可以用一组属性来描述,属 性窗口就是用来设置窗体或 窗体中控件属性的。
当前属性 简单解释

1.2 认识Visual Basic 6.0的工作界面
工具箱

工具箱窗口由若干个工具按钮组 成,主要用于设计应用程序界面。在 系统默认情况下,工具箱中有一个指 针和20个标准控件,用户也可以通过 “工程”→“部件”命令加载 Windows中注册的其他控件。

1.2 认识Visual Basic 6.0的工作界面
代码窗口

代码窗口又称代码编 辑器,用来编写或修改过程 或事件过程的代码。双击控 件或者窗体空白处,以及在 【工程资源管理器】中双击 模块都可以打开代码窗口。
对象下拉列表框
代码区 【过程查看】按 钮和【全模块查 看】按钮 过程下拉列表框

1.2 认识Visual Basic 6.0的工作界面
窗体布局窗口 用来指定程序运行时 的窗体初始位置,可以通过 拖动窗体图标的位置来调整 程序运行时窗体显示的位置。 窗体布局窗口主要用来定位 窗体的位置。

1.2 认识Visual Basic 6.0的工作界面
其他窗口 在VB 6.0的集成开发环境中,除上述主要窗口外, 还有对象浏览器窗口、数据视图窗口、立即窗口、本 地窗口、监视窗口等。可以根据需要,通过“视图” 菜单中的相应命令,打开或关闭这些窗口。

1.3 使用Visual Basic 6.0管理工程
Visual Basic的应用程序与工程有着密切的关系。 在Visual Basic中无论应用程序的规模是大还是小,其

总对应着一个或几个工程。
工程管理主要包括工程的保存、关闭、打开和重命 名等,主要是通过【文件】下拉菜单完成操作。

1.3.1 工程介绍
什么是工程 当使用Visual Basic创建应用程序时,所有文 件的有关信息就保存在称为“工程”的文件中。在 Visual Basic中,使用工程来管理构成应用程序的所 有不同的文件。 当完成工程的全部文件之后,可将此工程转换成 可执行文件(.exe),直接在Windows下运行。

1.3.1 工程介绍
工程文件 工程文件就是与该工程有关的全部文件和对象的清单 一个工程包括以下各项:

⑴ 跟踪所有部件的工程文件(.vbp);
⑵ 每个窗体的文件(.frm); ⑶ 每个窗体的二进制数据文件(.frx),它含有窗体上控

件的属性数据。这些文件都是自动产生的;
可以通过工程管理窗口创建、添加或从工程中删除可 编辑文件时,工程管理窗口包含此

工程的当前文件的列表

1.3.2 新建、保存工程
新建工程
选择【文件】?【新建工程】菜单命令,弹出【新建工 程】窗口。

选择需要创建的文件类型,单击【确定】按钮。

1.3.2 新建、保存工程
保存工程
? 选择【文件】?【保存工程】菜单命令,弹出【文 件另存为】对话框。

? 在【文件另存为】对话框中的【保存在】下拉列表 框中选择要保存的路径,在【文件名】文本框中输 入文件名,单击【保存】按钮。
? 系统将弹出【工程另存为】对话框,单击【保存】 按钮即可将后缀为“.vbp”的工程文件保存。

1.3.3 运行工程 以下3种方法均可运行工程
1. 选择【运行】?【启动】菜单命令

2. 单击工具栏上的按钮
3. 按功能键【F5】

1.3.4 生成可执行文件
生成可执行文件 选择【文件】?【生成工程1.exe】菜单命令, 将弹出【生成工程】对话框。 在【生成工程】对话框的【保存在】列表框中选 择要生成可执行文件的路径,并在【文件名】输入框中 输入文件名,单击【确定】按钮将生成以【.exe】为后 缀的可执行文件。

关闭工程
以下3种方法均可将工程关闭 1.选择【文件】?【退出】菜单命令或按快捷键 【Alt+Q】。 2.右击Visual Basic 6.0开发环境的标题栏,选择 【文件】?【关闭】菜单命令 3.按快捷键【Alt + F4】。

1.4 来自VB世界的第一声问候 ——第一个应用程序
【范例1-1】 欢迎来到精彩的VB世界,在本例中将详细
介绍怎样编写运行第一个Visual Basic应用程序。

Visual Basic应用程序的开发步骤

1、创建工程 2、定制窗体 ? 添加控件 ? 设置属性 3、添加代码 4、运行程序 5、生成可执行文件

本章小结

1. Visual Basic 6.0简介 简单介绍Visual Basic 6.0的发展历史和特点 2. Visual Basic 6.0的开发环境 Visual Basic 6.0启动与退出、 Visual Basic 6.0的工作界面 3. Visual Basic 6.0工程管理 介绍VB工程的概念及管理工程的方法 4.创建第一个VB应用程序 结合一个VB应用程序实例介绍Vb应用程序开发步骤


四 : VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

vb6.0教程 VB6.0教程-入门

扩展:vb6.0快速入门教程 / vb6.0从入门到精通 / vb6.0入门到精通pdf

本文标题:vb6.0教程-VB6.0图文实例教程
本文地址: http://www.61k.com/1104213.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1