1、vb程序设计实例vb程序设计实例 2009-5-22 15:37 提问者:淘淘的某在 | 悬赏分:20 | 浏览次数:1688次编写程序,设银行定期存款的年利率为:1年期2.25%,2年期2.43%,3年期为2.70%,5年期为2.88%(不记复利)。今有X元,5年以后使用,共有如下6中存法:存一次5年期;存一次3年期,一次2年期;存一次3年期,两次1年期;存两次2年期,一次1年期;存一次2年期,三次1年期;存五次1年期.分别计算各种存法5年后到期的本息合计,如图所示2009-5-22 17:06 最佳答案 Private Sub Form_Activate()1年期2.25%,2年期2.43
2、%,3年期为2.70%,5年期为2.88%(不记复利)。今有X元,5年以后使用,共有如下6中存法:Const x1 As Double = 0.0225, x2 As Double = 0.0243, x3 As Double = 0.027, x5 As Double = 0.0288Dim x As Doublex = Val(InputBox()Print 存一次5年期,5年后到期的本息合计; ss(x, 5, x5)Print 存一次3年期,一次2年期,5年后到期的本息合计; ss(ss(x, 3, x3), 2, x2)Print 存一次3年期,两次1年期,5年后到期的本息合计; s
3、s(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)End SubPrivate Function ss(ByVal a As Double,
4、 b As Integer, c As Double) As Double ss = a + a * c * bEnd FunctionPrivate Sub Form_Load()AutoRedraw = TrueEnd Sub如下Dim str As StringPrivate Sub Command1_Click()str = Text1.SelTextText1.SelText = Command3.Enabled = TrueEnd SubPrivate Sub Command2_Click()str = Text1.SelTextCommand3.Enabled = TrueEnd
5、 SubPrivate Sub Command3_Click()Text1.SelText = strEnd SubPrivate Sub Command4_Click()EndEnd SubPrivate Sub Command5_Click()Form2.ShowForm1.HideEnd SubPrivate Sub Form_Load()Command1.Enabled = TrueCommand2.Enabled = TrueCommand3.Enabled = FalseCommand4.Enabled = TrueEnd Sub如何让Command14功能键的目标转向text1
6、内的内容我点的时候必须 把text1里面的内容去选定后才能 进行操作如何让他自己选定为text1的内容- -!上面的Command1剪切功能 Command2复制功能 Command3粘贴功能 Command4退出- -!三、利用VB三维面板控件设计流动条2000-09-15 00:00:00 王金柱yeskyVB提供了一个三维面板控件,利用这个控件可设计图形效果的立体界面,从而使应用程序的界面显得更生动、美观,该控件还可以设置各种形式的背景,然后在背景上显示各种形式的字符,令人感兴趣的是,使用三维面板控件,还可设计我们经常在安装程序中看到的表示安装进程的流动条,并可显示进程百分比,改变流动条
7、的颜色等。 一、介绍属性 FloodColor:确定流动条的颜色,缺省为蓝色。FloodPercent:显示当前过程如流动条进行的百分比,参数改变时显示的百分数和流动条的面积改变,设为一整型值,取值范围是0100。 FloodShowpct:决定是否在三维面板控件上显示百分比,是一个逻辑值。为 True时显示,为False时不显示。 FloodType:表示用户对三维面板控件的使用方式。可取值有 6个,如下所示: 0缺省设置 1表示流动条方向从左到右 2表示流动条方向从右到左 3表示流动条方向从上到下 4表示流动条方向从下到上 5表示使用指定的颜色从圆心向外画圆 二、流动条设计 如果在Wind
8、ows3?X下,工具箱中不存在三维面板控件,可选择File菜单中的“Add File”进行添加,在弹出的对话框中找到WindowsSystem目录,然后选定Threed?vbx文件即可,如果使用VB4.0,需在Tools菜单中选择 Custom Controls命令,选定Sheridan 3d Controls项,按OK按钮,可在工具箱中增加三维面板控件。 启动VB3?0,在窗体中画一水平方向的长方形三维面板控件,按F4,在属性窗口中设置其Name为P3d、Bevellnner为2Raised、FloodType为1、FloodshowPct为True,再在窗体中画一个按钮Command1,双
9、击该按钮,键入下面的代码: Sub Command1_Click() P3d?floodpercent=0 For N=1 To 100 If N$#62;100 THEN Exit Sub End If P3d?FloodPercent=N Next I End Sub 按F5,运行该程序,点击Command按钮,即可看到流动条效果。 四、使用VB设计具有动感的命令图标栏2000-09-15 00:00:00 张嵘VB编程乐园p我们在使用Word、Excel等Windows应用程序时,经常会见到在程序界面顶端有一行“立体式”图标按钮。当用鼠标按下某一个图标按钮时,程序就执行相应的操作。这一行
10、“立体式”图标按钮通常就称作命令图标栏或工具条。命令图标栏一般提供一些最常用的命令,供用户快速地取用,并且它设计时采用了“立体式”按钮,操作时会产生凹下去和凸出来的“动感”,笔者这里就谈谈如何用VB来建立具有“动感”的命令图标栏。使命令图标具有“动感”是依靠对命令图标的不同状态的图像切换来获得的。当鼠标按下时,图标显示为凹入状态的图像;当松开时,图标显示为凸出状态的图像。通过图像切换就使命令图标具有了“动感”,具体设计步骤如下:1。首先在窗体中创建一个图片框(Picture Box),将其Align属性置为1,使图片框固定在窗体上端,调节其宽度使其能安置图像或命令按钮。2。在图标框内创建若干个
11、图像框(Image Control),设置其AutosizeTrue,Picture属性在程序运行中设置。3。编写程序代码。这里假设某个命令图标凸出状态的图像文件名为zrup.bmp,凹入状态的图像文件名为zrdown.bmp。窗体装入时:Sub formload()Imagel.pictureLoadpicture(zrup.bmp) 命令图标凸出End sub鼠标按下时:Sub Imagelmousedown(Button As Integer Shift As Integer, X As single,Y As single)Imagel.pictureLoadpicture(zrdow
12、n.bmp) 命令图标如下:End sub鼠标松开时:Sub Imagelmouseup(Button As Integer,Shift As Integer,X As single,Y As single) Imagel.pictureLoadpicture(zrup.bmp) 命令图标凸出End sub以上只能使命令图标具备凹下去的功能,但当在按鼠标按钮不放,并拖曳鼠标使光标移到外头,原来图标仍然处于凹下状态。要使其自动凸起,就要编写如下代码:Sub Imagel-mouseup(Button As Integer,Shift As Integer,X As single,Y As sin
13、gle)Select Case ButtonCase 1If X$#60;=0 or X$#62;Imagel.Width or Y$#60;=0 or Y$#62;Imagel.Height then Imagel.picture=Loadpicture(zrup.bmp) 凸出elseImagel.picture=Lo icture(zrdown.bmp) 凹入End ifEnd selectEnd sub通过以上三步骤就可以建立具有“动感”的命令图标,若具有多个命令图标时,可通过创建图像控制数组来实现。BMP是常见的一种图像格式,也可以使用VB提供的丰富的不同状态的命令图标位图文件,它在
14、VB的子目录bitmaps中。 窗体顶端窗体底端五、实现窗体内部的左右移动分割区的宽度 Private Const SPL99vTERWIDTH = 45 最小移动宽度 Private Const HMIN = 15 picLeft和picRight的宽度相对于窗体的比例 Private Percent As Single 正在拖动的标志 Private DragFlag As Boolean 每次拖动后需要重排窗体上的控件 Private Sub RedrawMe() Dim NewWidth As Single 忽略窗体缩小的情况 If WindowState = vbMinimized
15、Then Exit Sub NewWidth = (ScaleWidth - SPL99vTERWIDTH) * Percent Picleft.Move 0, 0, NewWidth, ScaleHeight Picright.Move NewWidth + SPL99vTERWIDTH, 0, ScaleWidth - NewWidth - SPL99vTERWIDTH, ScaleHeight End Sub Private Sub Form_Load() PicLeft和PicRight的MousePointer=1 Percent = 0.5 End Sub Private Sub
16、Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) DragFlag = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 定义鼠标为vbSizeWE型 MousePointer = vbSizeWE Percent = X / ScaleWidth RedrawMe End Sub Private Sub Form_MouseUp(Bu
17、tton As Integer, Shift As Integer, X As Single, Y As Single) DragFlag = False MousePointer = 0 此行语句实际没有起作用 End Sub 六、封面的设计一、封面的设计是这样的,先出现一窗体,上面为你喜欢的图案。然后出现一艘从左向右行驶着的船。屏幕上方从两侧分别移动出“欢迎”两个字。具体的制作方法是:把预先选好的背景图案装入封面窗体中,窗体命名为CAI。再分别在三个图像控件(image)中装入预先制作好的位图“欢”、“迎”和船型图案。然后把三个image放置在初始位置(即图案刚在窗体出现时的位置),并把它
18、们的可视属性都设置为“false”。程序如下: Sub Form_load() cai.Show 显示封面窗体 Dim i 定义变量 image3.visible=True 船型图像控件出现 a1: If image3.Left 6120 Then 6120为船移动到屏幕右边的坐标,此值可以随需要选取 image3.Move image3.Left50 移动此图像控件如嫌移动慢,可改变移动值 Goto a1 End If image1.visible=True “欢”字出现 a2: If image1.Left 5420 Then 5420为“迎”字移动到屏幕中间的位置 image2.Move
19、 image2.Left50 移动此图像控件 Goto a3 End If For i=1 To 10000 使窗体暂停一段时间时间长短可通过改变循环次数实现 Next i menul.Show 显示程序主窗体 Unload cai 卸载封面窗体 End Sub 二、简单的“动画” 点击一3D按钮后,屏幕表现光线平行进入一玻璃管,在管中有一散射中心,有的光线射到此中心后反射到管的初始端。程序如下: Sub Command3Dl_Click() Dim i, j, k, m, n 定义变量 For i=2080 To 5520 显示出三条线,直到图像中的散射中心处,颜色为黑色 Line(2080
20、,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) Next i For j=5520 To 4800 Step1 反射光线第一次射到管壁上 Line(5520,2760)(j,2760(5520j).33333333),RGB (255, 0, 0) 反射光线,颜色为红色 Line(5520,2660)(5520(5520j),2660),RGB(0, 0, 0) Line(5520,2860)(5520(5520j),2860),RGB(0
21、, 0, 0) 没有遇到散射中心的两条光线,为黑色,继续前进 Next j For k=4800 To 3360 Step1 反射光线第二次射到管壁上 Line(4800,2520)(k,2520(4800k).33333333), RGB(255, 0, 0) 反射光线,颜色为红色 Line(6240,2660)(6240(4800k),2660),RGB(0,0,0) Line(6240,2860)(6240(4800k),2860),RGB(0,0,0) 没有遇到散射中心的两条光线,颜色为黑色 Next k For m=3360 To 2080 Step1 反射光线第三次射到管壁上 Li
22、ne(3360,3000)(m,3000(3360m).33333333), RGB(255, 0, 0) 反射光线,颜色为红色 Next m End Sub 三、封底 封底的设计是:先出现全黑的屏幕,然后从上至下逐渐拉出白底红字的“再见”的字样。先按要求在画板中做一个BMP图,上面写着“再见”。然后在一名为BYE的窗体中加入一个全屏大的Picturel,将BMP图装入。程序如下: Sub Form_Load() Dim i 定义变量 bye.Show 封底出现 Unload menu1 卸载主菜单 al: If picture1.Height 7130 Then 7130为图的高度 pict
23、urel.Height=picture1.Height50 下拉屏幕 GoTo al End If For i=1 To 20000 使窗体暂停一段时间 Next i End 结束所有操作 End Sub 利用Visual Basic让命令行软件全面转向Windows 众所周知,Windows以其优美的图形界面,方便快捷的操作环境,已成为当今的主流操作系统,但由于其程序编写过于复杂,有很多用户常用的工具和小程序仍然只能运行于DOS环境下,造成Windows和DOS的频繁切换、使工作缺乏连续性和效率低下。有什么方法可以解决这一问题呢?等待For Windows版本的面市,但仍会造成重复投资。据笔
24、者观察发现,常用工具中有一部分为命令行软件,这些软件完全可以利用VB改编成For Windows版本的。首先由于VB的简单易用,使Windows的界面设计变得异常简单直观。所以可轻而易举的将命令选项、开关等转化为对应的图形界面(如复选钮等)。其次由于VB为用户提供了Shell函数,也使得命令调用非常简单。通过Shell其实你只做了个界面,核心还是DOS下的原来工具。其函数格式如下: Shell(命令字符串) 命令字符串即具体执行的命令(如字符串“arj e a:user.arj c:user ”)有关字符串的操作可查阅有关书籍。至于窗口型类型缺省即可。最后只须注意,在Shell执行函数之前,有
25、必要对命令行中有可能引发错误的参数进行检测,如在执行前检查用户给的源文件是否存在等,以保证达到预期结果。笔者用VB改编的Arj for Windows版本,其结果出乎想象。希望大家能自己动手全面转向Windows。 七、利用VB产生屏幕变暗的效果想利用 VB 编程实现屏幕变暗的效果(像关闭 Win95 时的效果),只要按下面的步骤来做: 1. 在 Form1 中加入两个 CommandButton 和一个 PictureBox. 2. 在 Form1 的代码窗口中添加以下代码: Private Type RECT Left As Long Top As Long Right As Long B
26、ottom As Long End Type Private Declare Function GetDC Lib user32 (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib user32 (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function CreatePatternBrush Lib gdi32 (ByVal hBitmap As Long) As Long Private Declare Function P
27、atBlt Lib gdi32 (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal dwRop As Long) As Long Private Declare Function DeleteObject Lib gdi32 (ByVal hObject As Long) As Long Private Declare Function CreateBitmap Lib gdi32 (ByVal nWidth As Long, ByVal
28、 nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long Private Declare Function SelectObject Lib gdi32 (ByVal hdc As Long, ByVal hObject As Long) As Long Private Declare Function InvalidateRect Lib user32 (ByVal hwnd As Long, ByVal lpRect As Long, ByVal bErase As Lo
29、ng) As Long Private bybits(1 To 16) As Byte Private hBitmap As Long, hBrush As Long Private hDesktopWnd As Long Private Sub Command1_Click() Dim rop As Long, res As Long Dim hdc5 As Long, width5 As Long, height5 As Long hdc5 = GetDC(0) width5 = Screen.Width Screen.TwipsPerPixelX height5 = Screen.Height Screen.TwipsPerPixelY rop = &HA000C9 Call SelectObject(hdc5, hBrush) res = PatBlt(hdc5, 0, 0, width5, height5, rop) Call DeleteObject(hBrush) res = ReleaseDC(0, hdc5) End Sub Private Sub Command2_Click() Dim aa As Lon
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1