VisualBasic编程教学系列100例.docx

上传人:b****6 文档编号:8121159 上传时间:2023-01-28 格式:DOCX 页数:41 大小:68.74KB
下载 相关 举报
VisualBasic编程教学系列100例.docx_第1页
第1页 / 共41页
VisualBasic编程教学系列100例.docx_第2页
第2页 / 共41页
VisualBasic编程教学系列100例.docx_第3页
第3页 / 共41页
VisualBasic编程教学系列100例.docx_第4页
第4页 / 共41页
VisualBasic编程教学系列100例.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

VisualBasic编程教学系列100例.docx

《VisualBasic编程教学系列100例.docx》由会员分享,可在线阅读,更多相关《VisualBasic编程教学系列100例.docx(41页珍藏版)》请在冰豆网上搜索。

VisualBasic编程教学系列100例.docx

VisualBasic编程教学系列100例

VisualBasic编程教学100例

控件及技巧

利用VB三维面板控件设计流动条

2000-09-1500:

00:

00·王金柱·yesky

  VB提供了一个三维面板控件,利用这个控件可设计图形效果的立体界面,从而使应用程序的界面显得更生动、美观,该控件还可以设置各种形式的背景,然后在背景上显示各种形式的字符,令人感兴趣的是,使用三维面板控件,还可设计我们经常在安装程序中看到的表示安装进程的流动条,并可显示进程百分比,改变流动条的颜色等。

  一、介绍属性

  FloodColor:

确定流动条的颜色,缺省为蓝色。

  FloodPercent:

显示当前过程如流动条进行的百分比,参数改变时显示的百分数和流动条的面积改变,设为一整型值,取值范围是0~100。

  FloodShowpct:

决定是否在三维面板控件上显示百分比,是一个逻辑值。

为True时显示,为False时不显示。

  FloodType:

表示用户对三维面板控件的使用方式。

可取值有6个,如下所示:

  0 缺省设置

  1 表示流动条方向从左到右

  2 表示流动条方向从右到左

  3 表示流动条方向从上到下

  4 表示流动条方向从下到上

  5 表示使用指定的颜色从圆心向外画圆

  二、流动条设计

  如果在Windows3?

X下,工具箱中不存在三维面板控件,可选择File菜单中的“AddFile…”进行添加,在弹出的对话框中找到Windows\System目录,然后选定Threed?

vbx文件即可,如果使用VB4.0,需在Tools菜单中选择CustomControls命令,选定Sheridan3dControls项,按OK按钮,可在工具箱中增加三维面板控件。

  启动VB3?

0,在窗体中画一水平方向的长方形三维面板控件,按F4,在属性窗口中设置其Name为P3d、Bevellnner为2-Raised、FloodType为1、FloodshowPct为True,再在窗体中画一个按钮Command1,双击该按钮,键入下面的代码:

  SubCommand1_Click()

  P3d?

floodpercent=0

  ForN%=1To100

  IfN%$#@62;100THEN

  ExitSub

  EndIf

  P3d?

FloodPercent=N%

  NextI%

  EndSub

  按F5,运行该程序,点击Command按钮,即可看到流动条效果。

巧用VisualBasic的Timer控件

2000-09-04··郑海波··VB编程乐园

VisualBasic提供一个Timer控件,其本质上是一个具有间隔时间设置所触发的时间程序,使我们可以将其隐藏在系统中,以某一时间间隔触发相关程序。

灵活地运用它可以取得很巧妙的效果。

下面,我们举一个例子。

  我们可以在界面设计中设计出这样一种效果:

一行文字在窗体中自左向右逐渐滚动,从右边“滚”出窗体的文字,又在左边逐渐出现。

如此循环下去。

类似电视上的滚动信息。

这样可使你设计的软件显得很生动,极易引起用户的兴趣。

其实,使用VisualBasic的Timer控件就可很容易地实现它。

  首先,我们在窗体中设置两个Label控件Label1、Label2。

这两个控件中除Left属性外,其他属性设置成完全一样。

这主要是为了实现循环滚动的效果。

它们的Caption属性设置为要滚动显示的文字。

另外再调整好其字体、大小和颜色等。

在Form-Load过程中设置Label2.Left=-6240(窗体宽度),Label1.Left=0。

这样可保证La?

bel1的一部分“滚”出窗体,则Label2的一部分就进入窗体。

而形成循环滚动在窗体中设置?

/FONT$#@62;Timer控件。

Timer控件的Interval属性决定滚动的速度,单位是毫秒。

例如,我们设置成300,则每隔0.3秒滚动一次。

然后,在Timer1-Timer()过程中加入如下程序:

PrivateSubTimer1-Timer()

Label1.Left=Label1.Left+50

Label2.Left=Label2.Left+50

IfLabel1.Left>=6240Then

Label1.Left=-6240

EndIf

IfLabel2.Left>=6240Then

Label2.Left=6240

EndIf

EndSub

  滚动效果就形成了,感兴趣的读者可以试试看。

只要灵活运用Timer控件,我们还可以设计出更有趣的效果。

如用Timer控件控制按钮控件的Visible属性,形成闪烁按钮。

用Timer控件控制显示不同的图象,形成简单的动画。

VB的OPEN对话框控件图示功能扩充

2000-08-1700:

00:

00·-·天涯风铃

p>  VisualBasicForWindows(VB)提供了丰富的控件,但其提供的公用对话框控件在打开文件时(例如*.Bmp和*.Pcx等)不能显示文件内容即图像,本文给出了一个实例,可以模拟一些图形软件包在打开文件的同时显示图像,模拟和扩充OPEN控件功能。

  为模拟的扩充OPEN功能,下面给出了一个完整的VB程序,实现方法如下:

一、建立窗体

  首先建立一个窗体(窗体名为OPNFILE),窗体上包含驱动器列表、目录列表、文件列表、两个命令按钮(确认、取消)和显示影像的控件(picture或image),下面是这6个控件的建立方法和有关属性的改变。

1、DirvelistBox驱动器列表控件

双击驱动器列表控件,在窗体上调准控件的位置,控件名称为“Drive1”。

2、DirlistBox目录列表控件

双击目录列表控件,在窗体上调准控件的位置,控件名称为“Dirl”

3、FilelistBox文件列表控件

双击文件列表控件,在窗体上调准控件的位置和尺寸,控件名称为“Filel”,修改“Pattern”属性为“*.bmp,*.pcx”。

4、CommandButtom命令按钮控件

双击命令按钮控件,建立命令按钮,第一个取名为Command1,修改Caption属性为“确认”,第二个取名为Command2,修改Caption属性为“取消”。

5、显示影像的控件

既可以选picture控件,也可选image控件显示图像,以image控件为例。

双击image控件,调准矩形框的大小和位置,取名为imagel,设置strtch属性。

strech=false时,图形以原尺寸显示。

二、事件过程的建立

1、驱动器更改事件过程

SubDrive-change()

①Dirl.Path=Drivel.Drive

②ChDriveDrivel.Drive

EndSub

其中①当驱动器发生更改时,改变目录路径;②更改路径。

2、目录更改事件过程

SubDirlchange()

Filel.Path=Dirl.path

EndSub

该事件过程是对目录发生更改时,作出文件路径更改的响应。

3、文件列表单击事件

SubFilel-click()

Imagel.picture=loadpicture(Filel.path+”\”+Filel.FileName)

EndSub

单击任一图形文件名时,在image控件框上显示图像。

4、命令按钮控件

SubCommand1-click()

F1$=Filel.path+”\”+FileName

End

EndSub

SubCom?

mand2-click()

F1$=””

EndSub

F1$为选择文件名称?

软件使用,若用户单击“取消”按钮,F1$为空串。

  单击驱动器名可以改变驱动器,单击目录列表中某一目录可以更改目录,单击某一图形文件可以显示图形,在文件列表中按“↑”或“↓”键,可以随着文件名的变化,图像框中的图形也随之发生更改。

F1$可以供应用程序调用,其中包含驱动器名、目录和文件名。

文本框控件的消息及应用

2000-10-12··请作者和我们联系··VB爱好者

 ∥谋?

或文字)控件是“文本框控件”的简称,它通常用于输入和编辑文字。

它属于标准Windows编辑控件的一个子类,所以它支持所有编辑控件消息。

这儿讲述的技术也适用于由其他厂商设计的,以Windows编辑控件类为基础的其他控件。

  本文将介绍文本控件的消息,这些消息显著扩展了控件本身的能力,使我们在程序中能够更灵活的控制控件,不必只仅仅依赖于VisualBasic所提供的属性或事件,这些消息在进行子类处理中很有用处。

下面先介绍控件的消息,然后介绍它们的一些应用。

下表列出了文本控件的常用通知消息:

消息名称

消息说明

EN_CHANGE

编辑控件的内容一旦发生改变,就发送这条消息。

EN_ERRSPACE

任何时候只要由于内存不足以完成一项编辑操作,就发送这条消息。

EN_HSCROLL

只要用户单击了从属于一个编辑控件的水平滚动条的任何地方,就会发送这条消息。

注意这条消息是在控件更新显示之前发送出去的。

EN_KILLFOCUS

一旦控件丢失了输入焦点,则发出这条消息。

EN_MAXTEXT

只要用户输人的文字试图超出由EM_LIMITTEXT消息规定购界限,或试图超出由VBMaxlength属性规定的界限,就会发送这条消息。

此外,倘若不允许自动进行水平滚动,同时插入点要超出控件的宽度;或者不允许自动自动滚动,同时插入点要超出接件的高度,那么也会触发这条消息。

EN_SETFOCUS

一旦控件接收到了输入焦点,就发出这条消息。

EN_UPDATE

EN_VSCROLL

只要用户单击了从属于一个编辑控件的垂直滚动条的任何地方,就会发送这条消息。

注意这条消息是在控件更新显示之前发送出去的。

下表列出了文本控件的常用消息:

消息名称

消息说明

EM_CANUNDO

决定前一次编辑操作是否能够撤消

EM_EMPTYUNDOBUFFER

清除控件的撤消缓冲区,使其不可能撤消前一次编辑操作

EM_UNDO

撤消前一次编辑操作

EM_FMTLINES

决定是否在取回的文本宇串中包含软回车字符

EM_GETLIMITTEXT

获取一个编辑控件中文本的最大长度

EM_GETMARGINS

获取编辑控件的左、右边距(不得用于NT3.51)

EM_GETRECT

获取一个编辑控件的格式化矩形

EM_LIMITTEXT

限制编辑耀件甲购文本长度

EM_SETLIMITTEXT

限制编辑控件中的文本长度(不得用于NT3.51)

EM_SETMARGINS

设置编辑控件的左、右边距(不得用于NT3.51)

EM_SETRECT

为一个编辑控件设置格式化矩形

EM_SETRECTNP

与EM_SETRECT类似,只是控件此时不会重画

EM_SETTABSTOPS

设置编辑控件中的制表站间距

EM_CHARFROMPOS

判断编辑控件指定位置处的字符(不适用于NT3.51)

EM_GETFIRSTVISIBLEIN

判断编辑控件中显示的第一行

EM_GETLINE

从编辑控件取回…行的内容

EM_GETLINECOUNT

判断一个编辑控件的总行数

EM_GETMODIFY

判断编辑控件的内容是否已发生变化

EM_GETPASSWORDCHAR

取得编辑控件的密码字符

EM_GETSEL

判断编辑控件中一段选定内容的起点与终点

EM_LINEFROMCHAR

判断是哪一行显示了某个特殊字符

EM_LINEINDEX

判断指定行第一个字符的编号

EM_LINELENGTH

判断一行长度

EM_LINESCROLL

滚动编辑控件

EM_POSFROMCHAR

判断指定字符在编辑控件的位置(用于NT3.51)

EM_REPLACESEL

用指定文本替换编辑控件中的当前选定内容

EM_SETMODIFY

用于设置或清除一个编辑控件的修改标志

EM_SETPASSWORDCHAR

为指定的控件设置密码字符

EM_READONLY

决定是否将编辑控件设为只读

EM_SETSEL

设置编辑控件中一段选定内容的起点一终点

下面将介绍文本框控件消息的一些应用:

下面的函数将返回控件的文本行数,如果控件的文本为空也会返回1。

FunctionGetLineCount(CTextBoxAsTextBox)AsLong

  GetLineCount=SendMessage(CTextBox.hWnd,EM_GETLINECOUNT,0,0)

EndFunction

下面的函数将返回控件中显示的第一行的行号。

FunctionGetFirstVisableLine(CTextBoxAsTextBox)AsLong

  GetFirstVisableLine=SendMessageBynum(CTextBox.hwnd,EM_GETFIRSTVISIBLELINE,0,0)

EndFunction

下面的函数将返回控件能显示的行数。

FunctionGetVisibleLines(CTextBoxAsTextBox)AsLong

DimrcAsRECT

DimhDC&,lfont&,oldfont&

Dimdi&,lc&

DimtmAsTEXTMETRIC

 lc=SendMessage(CTextBox.hwnd,EM_GETRECT,0,rc)

 lfont=SendMessage(CTextBox.hwnd,WM_GETFONT,0,0)

 hDC=GetDC(CTextBox.hwnd)

 Iflfont$#@60;$#@62;0Thenoldfont=SelectObject(hDC,lfont)

  di=GetTextMetrics(hDC,tm)

 Iflfont$#@60;$#@62;0Thenlfont=SelectObject(hDC,oldfont)

  GetVisibleLines=(rc.bottom-rc.top)/tm.tmHeight

  di=ReleaseDC(CTextBox.hwnd,hDC)

EndFunction

  下面的函数能够滚动控件,不过在滚动之前最好判断控件的文本行数和能够显示的行数,以免滚动时发生混乱。

函数SendMessageBynum是一个SendMessage函数的安全声明函数,其定义与SendMessage函数完全相同,只是函数名不同。

FunctionScrollTextBox(CTextBoxAsTextBox,nValAsLong,_

OptionalnVerticalAsBoolean=True)AsLong

 IfnVerticalThen

  ScrollTextBox=SendMessageBynum(CTextBox.hwnd,EM_LINESCROLL,0,nVal)

 Else

  ScrollTextBox=SendMessageBynum(CTextBox.hwnd,EM_LINESCROLL,nVal,0)

 EndIf

EndFunction

下面的函数能够返回控件指定行的文本。

SendMessageBystring与SendMessageBynum类似。

FunctionGetLineText(CTextBoxAsTextBox,LineIndexAsLong)AsString

 Dimlc&,linechar&

 linechar=SendMessageBynum(CTextBox.hwnd,EM_LINEINDEX,LineIndex,0)

 lc=SendMessageBynum(CTextBox.hwnd,EM_LINELENGTH,linechar,0)+1

 GetLineText=String$(lc+2,0)

 Mid$(GetLineText,1,1)=Chr(lcAnd&HFF)

 Mid$(GetLineText,2,1)=Chr(lc\&H100)

 lc=SendMessageBystring(CTextBox.hwnd,EM_GETLINE,LineIndex,GetLineText)

 GetLineText=left(GetLineText,lc)

EndFunction

下面的函数可以设置控件的左边距。

PublicConstEM_SETMARGINS&=&HD3

PublicConstEC_LEFTMARGIN&=&H1

FunctionSetMargins(CTextBoxAsTextBox,nValAsLong)AsLong

 SetMargins=SendMessageBynum(CTextBox.hwnd,EM_SETMARGINS,EC_LEFTMARGIN,nVal)

EndFunction

在VB中用PictureClip控件实现动画(缺少)

用InternetTransfer编写FTP程

2000-09-10··-··VB编程乐园

〕I贤娜硕级訤TP熟悉得不能再熟悉了,它是文件传输协议的英文缩写,所谓文件传输协议就是人们规定的在网络间传输文件的一组规定,里面规定了数据包的格式、数据包头部结构、命令结构等等。

其实要想实现FTP的功能并不是很难,下面我们就来介绍一下如何作一个简单的Windows界面的FTP程序。

  其实我们常用的VC和VB等开发工具就可以轻松搞定,下面我们就来说说在VB中使用MicrosoftInternetTransfer控件实现FTP的功能。

  InternetTransfer控件,支持HTTP(超文本传输协议)和FTP(文件传输协议),超文本传输协议就是我们的浏览器传输网页时使用的协议,也就是说你也可以用它作一个浏览器。

我们这里主要讨论文件传输协议FTP。

  首先创建一个新工程,在你的工具箱上添加MicrosoftInternetTransfer控件,并放到你的主窗体上,注意看它的属性:

  Protocol指所用的协议,我们这里选2-icFTP,就是FTP协议。

  UserName和Password是这样的:

UserName和Password都给null或“"时,发送到FTPServer的UserName是“anonymous",Password是用户的Email,当UserName给null或“",而Password为非空字符串时是错误的,其他情况正常。

  RemoteHost写FTPServer(就是你要连到的那台主机,你可以在程序中动态地给这个属性赋值,以适应连接到不同的主机上)的域名地

  址或IP,RemotePort在你指定FTP协议时自动被设置成21,URL属性由RemoteHost、RemotePort、Protocol等几个属性内容组合而成,如果前面已经给出这些值,VB会自动生成URL,以上这些属性均可以在程序中动态赋值,使你可以更灵活地运用这个控件。

  下面说说这个控件的方法(Method):

  1、OpenURL,调用该方法会连通FTPServer属性中指定的主机,并返回它的WelcomMessage,一般是一些欢迎词和当前有多少用户登录等信息。

  2、Execute方法用于执行对远程服务器的请求,它能发送对特定协议有效的请求,对于FTP协议来说,有效的操作有:

  CDfile1

  改变目录。

改变到file1中指定的目录。

  CDUP

  改变到父目录。

等效于“CD...”

  CLOSE

  关闭当前的FTP连接。

  DELETEfile1

  删除file1中指定的文件。

  DIR,LSfile1

  搜索file1中指定的目录(允许用通配符,但要使用远程主机的语法)。

如果没有指定file1,将返回当前的整个工作目录。

使用Geunk方法返回目录数据。

  GET,RECVfile1file2

  检索file1中指定的远程文件,并创建file2中指定的新本地文件。

  MKDIRfile1

  创建目录。

创建file1中指定的目录。

创建是否成功取决于用户在远程主机上的权限。

  PUT,SENDfile1file2

  复制file1指定的本地文件到file2指定的远程主机上。

  PWD

  打印工作目录。

返回当前目录名。

使用GetChunk方法返回数据。

  QUIT

  终止当前用户。

  RENAMEfile1file2

  将file1中命名的远程文件重命名为file2中指定的新名称。

成功与否取决于用户在远程主机上的权限。

  RMDIRfile1

  删除目录。

删除file1中指定的远程目录。

成功与否取决于用户在远程主机上的权限。

  SIZEfile1

  返回file1指定的目录的大小。

  举个例子:

  Inet1.Execute“",“dir"

  debug.printInet1.GetChunk这一句将打印出上一句dir的结果。

  Inet1.Execute“",“Getfile1C:

\File1"这个命令会把对方c:

\File1的文件取到本机当前目录下(这里假设对方是windowsbase的机器,并且有c:

\File1的文件)。

  下面说说该控件唯一的事件StateChanged。

  当这个FTP连接中状态发生了改变,如登录成功、命令接收成功、断线等等都会引发该事件。

该事件的处理函数有一个参数state,表明当前连接状态,它的值定义如下:

  值标识符意义

  0icNone无状态可报告。

  1icHostResolvingHost该控件正在查询所指定的主机的IP地址。

  2icHostResolved该控件已成功地找到所指定的主机的IP地址。

  3icConnecting该控件正在与主机连接。

  4icConnected该控件已与主机连接成功。

  5icRequesting该控件正在向主机发送请求。

  6icRequestSent该控件发送请求已成功。

  7icReceivingResponse该控件正在接收主机的响应。

  8icResponseReceived该控件已成功地接收到主机的响应。

  9icDisconnecting该

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1