vb程序设计实例.docx
- 文档编号:10541548
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:27
- 大小:29.31KB
vb程序设计实例.docx
《vb程序设计实例.docx》由会员分享,可在线阅读,更多相关《vb程序设计实例.docx(27页珍藏版)》请在冰点文库上搜索。
vb程序设计实例
vb程序设计实例
2009-5-2215:
37
提问者:
淘淘的某在|悬赏分:
20|浏览次数:
1688次编写程序,设银行定期存款的年利率为:
1年期%,2年期%,3年期为%,5年期
为%(不记复利)。
今有X元,5年以后使用,共有如下6中存法:
1存一次5年期;
2存一次3年期,一次2年期;
3存一次3年期,两次1年期;
4存两次2年期,一次1年期;
5存一次2年期,三次1年期;
6存五次1年期.
分别计算各种存法5年后到期的本息合计,如图所示
2009-5-2217:
06
最佳答案
PrivateSubForm_Activate()
'1年期%2年期%3年期为%5年期为%(不记复利)。
今有X元,5年以后使用,共有如下6中存法:
Constx1AsDouble=,x2AsDouble=,x3AsDouble=,x5AsDouble=
DimxAsDouble
x=Val(InputBox(""))
Print"①存一次5年期,5年后到期的本息合计";ss(x,5,x5)
Print"②存一次3年期,一次2年期,5年后到期的本息合计";ss(ss(x,3,x3),2,x2)
Print"③存一次3年期,两次1年期,5年后到期的本息合计";ss(ss(ss(x,3,x3),1,x1),1,x1)
Print"④存两次2年期,一次1年期,5年后到期的本息合计";ss(ss(ss(x,2,x2),2,x2),1,x1)
Print"⑤存一次2年期,三次1年期,5年后到期的本息合计";ss(ss(ss(ss(x,2,x2),1,x1),1,x1),1,x1)
Print"⑥存五次1年期,5年后到期的本息合计";ss(ss(ss(ss(ss(x,1,x1),
1,x1),1,x1),1,x1),1,x1)
EndSub
PrivateFunctionss(ByValaAsDouble,bAsInteger,cAsDouble)AsDoubless=a+a*c*b
EndFunction
PrivateSubForm_Load()
AutoRedraw=True
EndSub
如下
DimstrAsString
PrivateSubCommand1_Click()str=
Illi
=True
EndSub
PrivateSubCommand2_Click()str=
=True
EndSub
PrivateSubCommand3_Click()=str
EndSub
PrivateSubCommand4_Click()
End
EndSub
PrivateSubCommand5_Click()
EndSub
PrivateSubForm_Load()
=True
=True
=False
=True
EndSub
如何让Commandl-功能键的目标转向textl内的内容
我点的时候必须把text1里面的内容去选定后才能进行操作
如何让他自己选定为text1的内容--!
上面的Command剪切功能
Command复制功能
Command粘贴功能
Command退出--!
三、利用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文件即可,如果使用,需在Tools菜单中选择CustomControls命令,选定Sheridan3dControls项,按OK按钮,可在工具箱中增加三维面板控件。
启动VB3?
0,在窗体中画一水平方向的长方形三维面板控件,按F4,在属性窗口
中设置其Name为P3d、Bevellnner为2—Raised、FloodType为1、FloodshowPct为True,再在窗体中画一个按钮Command,1双击该按钮,键入下面的代码:
SubCommand1_Click()
P3d?
floodpercent=0
ForN%=1To100
IfN%$#@62;100THEN
ExitSub
EndIf
P3d?
FloodPercent=N%
NextI%
EndSub
按F5,运行该程序,点击Comman按钮,即可看到流动条效果。
四、
使用VB设计具有动感的命令图标栏
2000-09-1500:
00:
00•张嵘•VB编程乐园
p>我们在使用Word、Excel等Windows应用程序时,经常会见到在程序界面顶端有
一行“立体式”图标按钮。
当用鼠标按下某一个图标按钮时,程序就执行相应的操作。
这一行“立体式”图标按钮通常就称作命令图标栏或工具条。
命令图标栏一般提供一些
最常用的命令,供用户快速地取用,并且它设计时采用了“立体式”按钮,操作时会产生凹下去和凸出来的“动感”,笔者这里就谈谈如何用VB来建立具有“动感”的命令
图标栏。
使命令图标具有“动感”是依靠对命令图标的不同状态的图像切换来获得的。
当鼠
标按下时,图标显示为凹入状态的图像;当松开时,图标显示为凸出状态的图像。
通过图像切换就使命令图标具有了“动感”,具体设计步骤如下:
1。
首先在窗体中创建一个图片框(PictureBox),将其Align属性置为1,使图片框固定在窗体上端,调节其宽度使其能安置图像或命令按钮。
2。
在图标框内创建若干个图像框(ImageControl),设置其Autosize=True,Picture属性在程序运行中设置。
3。
编写程序代码。
这里假设某个命令图标凸出状态的图像文件名为"",凹入状态的图像文件名为""。
窗体装入时:
Subform-load()
=Loadpicture("")'命令图标凸出
Endsub
鼠标按下时:
SubImagel-mousedown(ButtonAsIntegerShiftAsInteger,XAssingle,
YAssingle)
=Loadpicture("")'命令图标如下:
Endsub
鼠标松开时:
SubImagel-mouseup(ButtonAsInteger,ShiftAsInteger,XAssingle,
YAssingle)=Loadpicture("")'命令图标凸出
Endsub
以上只能使命令图标具备凹下去的功能,但当在按鼠标按钮不放,并拖曳鼠标使光标移到外头,原来图标仍然处于凹下状态。
要使其自动凸起,就要编写如下代码:
SubImagel-mouseup(ButtonAsInteger,ShiftAsInteger,XAssingle,YAssingle)
SelectCaseButton
Case1
IfX$#@60;=0orX$#@62;orY$#@60;=0orY$#@62;then=Loadpicture("")'凸出
else
=Loicture("")'凹入
Endif
Endselect
Endsub
通过以上三步骤就可以建立具有“动感”的命令图标,若具有多个命令图标时,可通过创建图像控制数组来实现。
BMP是常见的一种图像格式,也可以使用VB提供的丰富的不同状态的命令图标位图文件,它在VB的子目录\bitmaps\
中。
五、
实现窗体内部的左右移动
'分割区的宽度
PrivateConstSPL99vTERWIDTH=45
'最小移动宽度
PrivateConstHMIN=15
'picLeft和picRight的宽度相对于窗体的比例
PrivatePercentAsSingle
'正在拖动的标志
PrivateDragFlagAsBoolean
'每次拖动后需要重排窗体上的控件
PrivateSubRedrawMe()
DimNewWidthAsSingle
'忽略窗体缩小的情况
IfWindowState=vbMinimizedThenExitSub
NewWidth=(ScaleWidth-SPL99vTERWIDTH)*Percent
0,0,NewWidth,ScaleHeight
NewWidth+SPL99vTERWIDTH,0,ScaleWidth-NewWidth-SPL99vTERWIDTH,ScaleHeight
EndSub
PrivateSubForm_Load()
'PicLeft和PicRight的MousePointer=1
Percent=
EndSub
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DragFlag=True
EndSub
PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
'定义鼠标为vbSizeWE型
MousePointer=vbSizeWE
Percent=X/ScaleWidth
RedrawMe
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
DragFlag=False
MousePointer=0'此行语句实际没有起作用
EndSub
六、
封面的设计
一、封面的设计是这样的,先出现一窗体,上面为你喜欢的图案。
然后出现一艘从左向右行驶着的船。
屏幕上方从两侧分别移动出“欢迎”两个字。
具体的制作方法是:
把预先选好的背景图案装入封面窗体
中,窗体命名为CAI。
再分别在三个图像控件(image)中装入预先制作好的位图“欢”、“迎”和船型图
案。
然后把三个image放置在初始位置(即图案刚在窗体出现时的位置),并把它们的可视属性都设置为
“false”。
程序如下:
SubForm_load()
'显示封面窗体
Dimi'定义变量
=True'船型图像控件出现
a1:
If<6120Then
'6120为船移动到屏幕右边的坐标,此值可以随需要选取
+50
'移动此图像控件如嫌移动慢,可改变移动值
Gotoa1
EndIf
=True'“欢”字出现
a2:
If<2120Then
'2120为“欢”字移动到屏幕中间的位置
+50'移动此图像控件
Gotoa2
EndIf
=True'“迎”字出现
a3:
If>5420Then
'5420为“迎”字移动到屏幕中间的位置
-50'移动此图像控件
Gotoa3
EndIf
Fori=1To10000
'使窗体暂停一段时间时间长短可通过改变循环次数实现
Nexti
'显示程序主窗体
Unloadcai'卸载封面窗体
EndSub
二、简单的“动画”
点击一3D按钮后,屏幕表现光线平行进入一玻璃管,在管中有一散射中心,有的光线射到此中心后反射
到管的初始端。
程序如下:
SubCommand3Dl_Click()
Dimi,j,k,m,n'定义变量
Fori=2080To5520
'显示出三条线,直到图像中的散射中心处,颜色为黑色
Line(2080,2760)-(i,2760),RGB(0,0,0)
Line(2080,2860)-(i,2860),RGB(0,0,0)
Line(2080,2660)-(i,2660),RGB(0,0,0)
Nexti
Forj=5520To4800Step-1'反射光线第一次射到管壁上
Line(5520,2760)-(j,2760-(5520-j)*.),RGB(255,0,0)'反射光线,颜色为红色
Line(5520,2660)
-(5520+(5520-j),2660),RGB(0,0,0)
Line(5520,2860)
-(5520+(5520-j),2860),RGB(0,0,0)
'没有遇到散射中心的两条光线,为黑色,继续前进
Nextj
Fork=4800To3360Step-1'反射光线第二次射到管壁上
Line(4800,2520)
-(k,2520+(4800-k)*.),
RGB(255,0,0)
'反射光线,颜色为红色
Line(6240,2660)
-(6240+(4800-k),2660),RGB(0,0,0)
Line(6240,2860)
-(6240+(4800-k),2860),RGB(0,0,0)
'没有遇到散射中心的两条光线,颜色为黑色
Nextk
Form=3360To2080Step-1'反射光线第三次射到管壁上
Line(3360,3000)
-(m,3000-(3360-m)*.),
RGB(255,0,0)
'反射光线,颜色为红色
Nextm
EndSub
三、封底封底的设计是:
先出现全黑的屏幕,然后从上至下逐渐拉出白底红字的“再见”的字样。
先按要求在画板中做一个BMP图,上面写着“再见”。
然后在一名为BYE的窗体中加入一个全屏大的Picturel,将BMP
图装入。
程序如下:
SubForm_Load()
Dimi'定义变量
封底出现
Unloadmenul'卸载主菜单
al:
If<7130Then'7130为图的高度
=+50'下拉屏幕
GoToal
EndIf
Fori=1To20000'使窗体暂停一段时间
Nexti
End'结束所有操作
EndSub
利用VisualBasic让命令行软件全面转向Windows
众所周知,Windows以其优美的图形界面,方便快捷的操作环境,已成为当今的主流操作系统,但由于其
程序编写过于复杂,有很多用户常用的工具和小程序仍然只能运行于DOS^境下,造成Windows和DOS
的频繁切换、使工作缺乏连续性和效率低下。
有什么方法可以解决这一问题呢?
等待ForWindows版本
的面市,但仍会造成重复投资。
据笔者观察发现,常用工具中有一部分为命令行软件,这些软件完全可
以利用VB改编成ForWindows版本的。
首先由于VB的简单易用,使Windows的界面设计变得异常简单直观。
所以可轻而易举的将命令选项、开关等转化为对应的图形界面(如复选钮等)。
其次由于VB为用
户提供了Shell函数,也使得命令调用非常简单。
通过Shell其实你只做了个界面,核心还是DOS下的
原来工具。
其函数格式如下:
Shell(命令字符串<,窗口类型>)
命令字符串即具体执行的命令(如字符串“arjea:
c:
user”)有关字符串的操作可查阅有关书籍。
至于窗口型类型缺省即可。
最后只须注意,在Shell执行函数之前,有必要对命令行中有可能引发错误的参数进行检测,如在执行前检查用户给的源文件是否存在等,以保证达到预期结果。
笔者用VB改编的
七、
利用VB产生屏幕变暗的效果
想利用VB编程实现屏幕变暗的效果(像关闭Win95时的效果),只要按下面的步骤来做:
1.在Form1中加入两个CommandButton和一个PictureBox.
2.在Form1的代码窗口中添加以下代码:
PrivateTypeRECT
LeftAsLong
TopAsLong
RightAsLong
BottomAsLong
EndType
PrivateDeclareFunctionGetDCLib"user32"(ByValhwndAsLong)AsLong
PrivateDeclareFunctionReleaseDCLib"user32"(ByValhwndAsLong,ByValhdcAsLong)AsLong
PrivateDeclareFunctionCreatePatternBrushLib"gdi32"(ByValhBitmapAsLong)AsLong
PrivateDeclareFunctionPatBltLib"gdi32"(ByValhdcAsLong,ByValxAsLong,ByValyAs
Long,ByValnWidthAsLong,ByValnHeightAsLong,ByValdwRopAsLong)AsLong
PrivateDeclareFunctionDeleteObjectLib"gdi32"(ByValhObjectAsLong)AsLong
PrivateDeclareFunctionCreateBitmapLib"gdi32"(ByValnWidthAsLong,ByValnHeightAsLong,
ByValnPlanesAsLong,ByValnBitCountAsLong,lpBitsAsAny)AsLong
PrivateDeclareFunctionSelectObjectLib"gdi32"(ByValhdcAsLong,ByValhObjectAsLong)
AsLong
PrivateDeclareFunctionInvalidateRectLib"user32"(ByValhwndAsLong,ByVallpRectAsLong,
ByValbEraseAsLong)AsLong
Privatebybits(1To16)AsByte
PrivatehBitmapAsLong,hBrushAsLong
PrivatehDesktopWndAsLong
PrivateSubCommand1_Click()
DimropAsLong,resAsLong
Dimhdc5AsLong,width5AsLong,height5AsLong
hdc5=GetDC(0)
width5=\height5=\rop=&HA000C9
CallSelectObject(hdc5,hBrush)
res=PatBlt(hdc5,0,0,width5,height5,rop)
CallDeleteObject(hBrush)
res=ReleaseDC(0,hdc5)
EndSub
PrivateSubCommand2_Click()
DimaaAsLong
aa=InvalidateRect(0,0,1)
EndSub
PrivateSubForm_Load()
Dimary
DimiAsLong
ary=Array(&H55,&H0,&HAA,&H0,_
&H55,&H0,&HAA,&H0,_
&H55,&H0,&HAA,&H0,_
&H55,&H0,&HAA,&H0)
Fori=1To16
bybits(i)=ary(i-1)
Nexti
hBitmap=CreateBitmap(8,8,1,1,bybits
(1))hBrush=CreatePatternBrush(hBitmap)=RGB(0,0,0)
=RGB(255,255,255)
=3
EndSub
Command2恢复。
运行程序,按Command1就可以使屏幕暗下来,
八、
Private
Declare
Function
GetDesktopWindowLib"user32"()
As
Long
Private
Declare
Function
GetDCLib"user32"(ByValhwnd
As
Long)AsLong
Private
Declare
Function
StretchBltLib"gdi32"_
(ByVal
hdc
As
Long,_
ByVal
xAs
Long,_
ByVal
yAs
Long,_
ByVal
nWidth
As
Long,_
ByVal
nHeightAsLong,
ByVal
hSrcDCAs
Long,_
ByVal
xSrc
As
Long,_
ByVal
ySrc
As
Long,_
ByVal
nSrcWidth
AsLong
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 程序设计 实例