首页 vb程序设计实例

vb程序设计实例

举报
开通vip

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年后到期的本息合计,如图所示 20...

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%,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.0288 Dim x As Double 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) End Sub Private Function ss(ByVal a As Double, b As Integer, c As Double) As Double ss = a + a * c * b End Function Private Sub Form_Load() AutoRedraw = True End Sub 如下 Dim str As String Private Sub Command1_Click() str = Text1.SelText Text1.SelText = "" Command3.Enabled = True End Sub Private Sub Command2_Click() str = Text1.SelText Command3.Enabled = True End Sub Private Sub Command3_Click() Text1.SelText = str End Sub Private Sub Command4_Click() End End Sub Private Sub Command5_Click() Form2.Show Form1.Hide End Sub Private Sub Form_Load() Command1.Enabled = True Command2.Enabled = True Command3.Enabled = False Command4.Enabled = True End Sub 如何让Command1~4功能键的目标转向text1 内的内容 我点的时候必须 把text1里面的内容去选定后才能 进行操作 如何让他自己选定为text1的内容- -~ 上面的Command1剪切功能 Command2复制功能 Command3粘贴功能 Command4退出- -~ 三、利用VB三维面板控件设计流动条 2000-09-15 00:00:00? 王金柱?yesky VB提供了一个三维面板控件,利用这个控件可设计图形效果的立体界面,从而使应用程序的界面显得更生动、美观,该控件还可以设置各种形式的背景,然后在背景上显示各种形式的字符,令人感兴趣的是,使用三维面板控件,还可设计我们经常在安装程序中看到的表示安装进程的流动条,并可显示进程百分比,改变流动条的颜色等。 一、介绍属性 FloodColor:确定流动条的颜色,缺省为蓝色。 FloodPercent:显示当前过程如流动条进行的百分比,参数改变时显示的百分数和流动条的面积改变,设为一整型值,取值范围是0,100。 FloodShowpct:决定是否在三维面板控件上显示百分比,是一个逻辑值。为 True时显示,为False时不显示。 FloodType:表示用户对三维面板控件的使用方式。可取值有 6个,如下所示: 0 缺省设置 1 表示流动条方向从左到右 2 表示流动条方向从右到左 3 表示流动条方向从上到下 4 表示流动条方向从下到上 5 表示使用指定的颜色从圆心向外画圆 二、流动条设计 如果在Windows3,X下,工具箱中不存在三维面板控件,可选择File菜单中的“Add File…”进行添加,在弹出的对话框中找到Windows\System目录,然后选定Threed, vbx文件即可,如果使用VB4.0,需在Tools菜单中选择 Custom Controls命令,选定Sheridan 3d Controls项,按OK按钮,可在工具箱中增加三维面板控件。 启动VB3,0,在窗体中画一水平方向的长方形三维面板控件,按F4,在属性窗口中设置其Name为P3d、Bevellnner为2,Raised、FloodType为1、FloodshowPct为True,再在窗体中画一个按钮Command1,双击该按钮,键入下面的代码: 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应用程序时,经常会见到在程序界面顶端有一行“立体式”图标按钮。当用鼠标按下某一个图标按钮时,程序就执行相应的操作。这一行“立体式”图标按钮通常就称作命令图标栏或工具条。命令图标栏一般提供一些最常用的命令,供用户快速地取用,并且它设计时采用了“立体式”按钮,操作时会产生凹下去和凸出来的“动感”,笔者这里就谈谈如何用VB来建立具有“动感”的命令图标栏。 使命令图标具有“动感”是依靠对命令图标的不同状态的图像切换来获得的。当鼠标按下时,图标显示为凹入状态的图像;当松开时,图标显示为凸出状态的图像。通过图像切换就使命令图标具有了“动感”,具体设计步骤如下: 1。首先在窗体中创建一个图片框(Picture Box),将其Align属性置为1,使图片框固定在窗体上端,调节其宽度使其能安置图像或命令按钮。 2。在图标框内创建若干个图像框(Image Control),设置其Autosize,True,Picture属性在程序运行中设置。 3。编写程序代码。这里假设某个命令图标凸出状态的图像文件名为:zrup.bmp:, 凹入状态的图像文件名为:zrdown.bmp:。 窗体装入时: Sub form,load() Imagel.picture,Loadpicture(:zrup.bmp:) ’ 命令图标凸出 End sub 鼠标按下时: Sub Imagel,mousedown(Button As Integer Shift As Integer, X As single,Y As single) Imagel.picture,Loadpicture(:zrdown.bmp:) ’ 命令图标如下: End sub 鼠标松开时: Sub Imagel,mouseup(Button As Integer,Shift As Integer,X As single,Y As single) Imagel.picture,Loadpicture(:zrup.bmp:) ’ 命令图标凸出 End sub 以上只能使命令图标具备凹下去的功能,但当在按鼠标按钮不放,并拖曳鼠标使光标移到外头,原来图标仍然处于凹下状态。要使其自动凸起,就要编写如下代码: Sub Imagel-mouseup(Button As Integer,Shift As Integer,X As single,Y As single) Select Case Button Case 1 If X$#@60;=0 or X$#@62;Imagel.Width or Y$#@60;=0 or Y$#@62;Imagel.Height then Imagel.picture=Loadpicture("zrup.bmp") ’凸出 else Imagel.picture=Lo icture("zrdown.bmp") ’凹入 End if End select End sub 通过以上三步骤就可以建立具有“动感”的命令图标,若具有多个命令图标时,可通过创建图像控制数组来实现。BMP是常见的一种图像格式,也可以使用VB提供的丰富的不同状态的命令图标位图文件,它在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 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 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(Button As Integer, Shift As Integer, X As Single, Y As Single) DragFlag = False MousePointer = 0 '此行语句实际没有起作用 End Sub 六、 封面的设计 一、封面的设计是这样的,先出现一窗体,上面为你喜欢的图案。然后出现一艘从左向右行驶着的船。屏幕上方从两侧分别移动出“欢迎”两个字。具体的制作方法是:把预先选好的背景图案装入封面窗体中,窗体命名为CAI。再分别在三个图像控件(image)中装入预先制作好的位图“欢”、“迎”和船型图案。然后把三个image放置在初始位置(即图案刚在窗体出现时的位置),并把它们的可视属性都设置为“false”。程序如下: Sub Form_load() cai.Show ′显示封面窗体 Dim i ′定义变量 image3.visible=True ′船型图像控件出现 a1: If image3.Left < 6120 Then ′6120为船移动到屏幕右边的坐标,此值可以随需要选取 image3.Move image3.Left,50 ′移动此图像控件如嫌移动慢,可改变移动值 Goto a1 End If image1.visible=True ′“欢”字出现 a2: If image1.Left < 2120 Then ′2120为“欢”字移动到屏幕中间的位置 image1.Move image1.Left,50 ′移动此图像控件 Goto a2 End If image2.visible=True ′“迎”字出现 a3: If image2.Left > 5420 Then ′5420为“迎”字移动到屏幕中间的位置 image2.Move image2.Left,50 ′移动此图像控件 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,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 Step,1 ′反射光线第一次射到管壁上 Line(5520,2760),(j,2760,(5520,j),.33333333),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) ′没有遇到散射中心的两条光线,为黑色,继续前进 Next j For k=4800 To 3360 Step,1 ′反射光线第二次射到管壁上 Line(4800,2520),(k,2520,(4800,k),.33333333), 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) ′没有遇到散射中心的两条光线,颜色为黑色 Next k For m=3360 To 2080 Step,1 ′反射光线第三次射到管壁上 Line(3360,3000),(m,3000,(3360,m),.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为图的高度 picturel.Height=picture1.Height,50 ′下拉屏幕 GoTo al End If For i=1 To 20000 ′使窗体暂停一段时间 Next i End ′结束所有操作 End Sub 利用Visual Basic让命令行软件全面转向Windows 众所周知,Windows以其优美的图形界面,方便快捷的操作环境,已成为当今的主流操作系统,但由于其程序编写过于复杂,有很多用户常用的工具和小程序仍然只能运行于DOS环境下,造成Windows和DOS的频繁切换、使工作缺乏连续性和效率低下。有什么方法可以解决这一问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 呢,等待For Windows版本的面市,但仍会造成重复投资。据笔者观察发现,常用工具中有一部分为命令行软件,这些软件完全可以利用VB改编成For Windows版本的。首先由于VB的简单易用,使Windows的界面设计变得异常简单直观。所以可轻而易举的将命令选项、开关等转化为对应的图形界面(如复选钮等)。其次由于VB为用户提供了Shell函数,也使得命令调用非常简单。通过Shell其实你只做了个界面,核心还是DOS下的原来工具。其函数格式如下: Shell(命令字符串<,窗口类型>) 命令字符串即具体执行的命令(如字符串“arj e a:user.arj c:\user ”)有关字符串的操作可查阅有关 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 籍。 至于窗口型类型缺省即可。最后只须注意,在Shell执行函数之前,有必要对命令行中有可能引发错误的参数进行检测,如在执行前检查用户给的源文件是否存在等,以保证达到预期结果。笔者用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 Bottom 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 PatBlt 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 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 Long) 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 Long aa = InvalidateRect(0, 0, 1) End Sub Private Sub Form_Load() Dim ary Dim i As Long ary = Array(&H55, &H0, &HAA, &H0, _ &H55, &H0, &HAA, &H0, _ &H55, &H0, &HAA, &H0, _ &H55, &H0, &HAA, &H0) For i = 1 To 16 bybits(i) = ary(i - 1) Next i hBitmap = CreateBitmap(8, 8, 1, 1, bybits(1)) hBrush = CreatePatternBrush(hBitmap) Picture1.ForeColor = RGB(0, 0, 0) Picture1.BackColor = RGB(255, 255, 255) Picture1.ScaleMode = 3 End Sub 运行程序,按 Command1 就可以使屏幕暗下来,按 Command2 恢复。 八、 Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function StretchBlt Lib "gdi32" _ (ByVal hdc As Long, _ ByVal x As Long, _ ByVal y As Long, _ ByVal nWidth As Long, _ ByVal nHeight As Long, _ ByVal hSrcDC As Long, _ ByVal xSrc As Long, _ ByVal ySrc As Long, _ ByVal nSrcWidth As Long, _ ByVal nSrcHeight As Long, _ ByVal dwRop As Long) As Long Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) End End Sub Private Sub Form_Load() ’set the showintaskbar property to false ’set the borderstyle of the form to none Form1.AutoRedraw = True Form1.ScaleMode = vbPixels a = GetDesktopWindow() b = GetDC(a) StretchBlt Form1.hdc, 0, 0, Screen.Width, Screen.Height, b, 0, _ Screen.Height, Screen.Width, -Screen.Height, vbSrcCop [1] [2] 下一页 九 在VB中实现闪动标题栏 摘要 在你的应用程序中,你可能会希望将应用程序的标题栏进行闪动,以提醒用户进行某种操作,本文介绍了如何使一个窗口的标题栏进行闪动。 闪动标题栏 闪动一个窗口的标题栏意味着改变它的标题栏的外观,例如它从活动变为不活动,或是从不活动变为活动等等。只要你能在Visual Basic中得到窗口的句柄,你就可以使用Windows 应用程序编程接口(API)函数来使该窗口的标题栏进行闪动。函数FlashWindows可以被用使一个特定的窗口闪动一次。要使用该函数,需要将如下的 声明 无利益冲突声明中华医学会杂志社职业健康检查不够规范教育部留学服务中心亲友住房声明 语句包含在你的窗体的通用声明部分中: #If Win32 Then Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As Long #Else Declare Function FlashWindow Lib "User" (ByVal hwnd As Integer, ByVal bInvert As Integer) As Integer #End If 该函数需要2个参数,第一个参数是要闪动标题栏的窗口的句柄,第二个参数用于指定是设置窗口的闪 动状态,还是恢复其原始状态。如果该bInvert参数非0,则表明窗口的标题栏被闪动,如果该参数为0,则表明窗口的标题栏被恢复为原始状态。该函数所返回的值用于指定调用该函数前窗口的状态,如果该返回值非0,则表明窗口在调用该函数之前是活动的,否则,如果返回值为0,则表明调用函数前窗口是非活动的。当使用该FlashWindow函数时,一个较好的方法是将标题栏闪动的频率设置为同脱字符(也即闪动的光标)相同,脱字符的闪动频率可以通过调用函数GetCaretBlinkTime来获得。要使用该函数,需要将如下的声明语句包含在你的窗体的通用声明部分中: #If Win32 Then Declare Function GetCaretBlinkTime Lib "user32" () As Long #Else Declare Function GetCaretBlinkTime Lib "User" () As Integer #End If 该函数返回用毫秒值表示的时间。 样例程序 1. 在Visual Basic中开始一个新的工程,采用缺省的方法建立Form1。 2. 在Form1上添加一个定时器控件,采用缺省的方法建立Timer1。 3. 将如下的代码添加到Form1的Form_GotFocus事件中: Private Sub Form_GotFocus() Timer1.Enabled = False End Sub 4. 将如下的代码添加到Form1的Form_Load事件中: Private Sub Form_Load() Timer1.Interval = GetCaretBlinkTime() Form2.Show End Sub 5. 将如下的代码添加到Timer1的Timer1_Timer事件中: Private Sub Timer1_Timer() Success = FlashWindow(Form1.hwnd, 1) End Sub 6. 添加第二个窗体,采用缺省的方法建立Form2。 7. 将如下的代码添加到Form2的单击事件中: Private Sub Form_Click() Form1.Timer1.Enabled = True End Sub 8. 添加一个新的模块,采用缺省的方法建立Module1.Bas。将如下的代码添加到该模块的通用声明部分 中: #If Win32 Then Declare Function FlashWindow Lib "user32" ( _ ByVal hwnd As Long, _ ByVal bInvert As Long) As Long Declare Function GetCaretBlinkTime Lib "user32" () As Long Dim Success As Long #Else Declare Function FlashWindow Lib "User" ( _ ByVal hwnd As Integer, _ ByVal bInvert As Integer) As Integer Declare Function GetCaretBlinkTime Lib "User" () As Integer Dim Success As Integer #End If 通过单击F5键来运行该样例程序,单击Form2窗体,这时Form1窗体将处于非活动方式,其标题栏将会不断闪烁。单击Form1使它它变为活动方式,则窗体的标题栏将不再闪烁 11、 一组VB实用小程序 用VB实现编程离不开函数调用及Windows API函数的调用,以下是笔者收集的一些实用的小例程,它们可以直接用在你的实际编程中,也可以根据实际应用加以扩充完善。其中涉及Windows API函数调用的代码你可以从VB5.0系统的API函数查看器中复制函数定义内容,以避免出错。 1.系统型表单 系统型意味着用户完成当前表单操作之前无法进行其它操作,这对于编制系统口令保护界面尤为重要。如果你希望当前表单系统型表单,需如下定义API函数: Declare Function SetSysModalWindow Lib "User" (ByVal hWnd As Integer) As Integer 然后调用:oldSysModal = SetSysModalWindow([Form].hWnd) 2.获取驱动器类型 代码如后: Declare Function GetDriveType Lib “Kernel" (ByVal nDrive As Integer) As Integer Global Const DRIVE_REMOVEABLE, = 2, DRIVE_FIXED, = 3 Global Const DRIVE_REMOTE, = 4 3.表单在对中 本子程序功能使表单定位在屏幕中央,在表单中任何需要表单对中的地方只需加入一行代码: “centerwindow.me”即可成功调用。 Public Sub CenterWindow(f As Form) f.Top = (Screen.Height , .5) , (f.Height , .5) f.Left = (Screen.Width , .5) , (f.Width , .5) End Sub 4. 定义变量 许多的程序员习惯于如下定义变量: Dim iNum, iNextNum, iLastNum as Integer 实际上只有最后一个变量被设为了整型,前两个变量则是系统的缺省的Variant 数据类型,而Variant 数 据类型可用来替换任何数据类型,显然对于精练的程序设计是不利的。 正确的方法如下: Dim iNum as Integer Dim iNextNum as Integer Dim iLastNum as Integer 5. 使文本高亮 本子程序使被触发的诸如文本,标签等控件的文本被选中 Public Sub SetSelected() Screen.ActiveControl.SelStart = 0 Screen.ActiveControl.SelLength = Len(Screen.ActiveControl.Text) End Sub 6. 关闭其它程序 下面的代码可关闭内存中的其它程序 title = "MyAPP" '定义你需关闭的程序窗口的标题 ihWnd = findWindow(0,, Title) ihTask = GetWindowTask (ihWnd) iRet = PostAppMessage(ihTask, WM_QU99v, 0, 0,) 7. 文件存在否? 本函数返回查找的文件是否存在。 Function FileExist(Filename as string) as Boolean FileExist = Iif(Dir(Filename) <> "", True, False) End Function 8. 主程序唯一 用下面提供的代码作你的主程序可防止应用程序的多重执行,你应当将它放在确信需要它的代码模块内。 Public Sub Main() If App.PrevInstance Then BringWindowToTop frmMain.hwnd Else Load frmMain End If End Sub 上面这些精悍的代码对于专业程序员来说非常有实用价值,希望你能从中获得启发。 12、 VB5.0中实现字体闪烁效果 用Visual Basic我们可设计出形形色色符合用户要求的应用程序,它确实是一种很好的用户程序开发工具,可VB提供的基本控件中都没有闪烁属性设置,使应用程序界面缺乏“活性”,近期笔者设计软件封面时,就要求字体不断地闪烁,为此,经反复 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 、实践,最后终于成功地实现字体闪烁效果,现将设计过程说明如下: (1)创建一个新目标文件(project1),并建立一个窗体Form1。 (2)在Form1上配置一个计时器控制Timer1、标签控件Label1、命令控件Command1。 (3)各控件属性设置: Timer1的Enabled设置为True; Label1的Caption设置为需闪烁的字体:“江西省黎川县职业中专电脑室设计”、 Font设置字体及大小、Backstyle设置为“0,Transparent”; Command1中的Caption设置为“退出”。 (4)程序代码清单: Option Explicit Private Sub Form_ Load() Label1.Top=850 ′设置闪烁字体的显示位置 Label1.Left=750 Timer1.Interval=555 ′设置字体闪烁间隔时间 Form1.Windowstate=2 End Sub ′利用计时器控件Timer有规律地改变字体颜色(Forecolor) Private Sub Timer1_Timer() Chc Label1,1,4,8 End Sub ′Chc过程是循环地改变字体颜色(Forecolor) Sub Chc(Cont As Control,Color1 As Integer,Color2 As Integer,Color3 As Integer) If Val(Cont.Tag)=Color1 Then Cont.Tag=Color2 ElseIf Val(Cont.Tag)=Color2 Then Cont.Tag=Color3 ElseIf Val(Cont.Tag)=Color3 Then Cont.Tag=Color1 Else Cont.Tag=Color1 End If Cont.ForeColor=QBColor(Cont.Tag) End Sub Private Sub Command1_Click() End End Sub 程序除标签控件外,还适用于许多VB基本控件,实现诸多闪烁效果,例如:闪烁文本框、闪烁文件列表框等,极大丰富了VB应用程序界面,相当实用。 13、 VB实用编程两例 该程序通过VB的多媒体控件MCI32.OCX可以打开MPEG压缩文件(如VCD2.0版的.DAT文件)来实现一个VCD播放器的设计 首先必须确保在你的Windows系统中SYSTEM.INI文件关于[MCI]中需有MPEGVideo项(一般Windows 95和Windows 98中均有此项)。 次在VB中建立一个新窗口,加入多媒体部件Microsoft Multimedia Control 5.0( 位于C:\Windows\System\MCI32.OCX),以及对话框部件Microsoft Common Dialog Control 5.0( 位于C:\Windows\System\COMMONDLG32.OCX),将MCI控件拖放至窗体Form上,调整其大小,并将窗体的大小也调整为与其同样大小;将其九个按钮(从左至右为:Prev、Next、Play、Pause、Back、Step、Stop、Record和Eject)中的Record按钮的Visible属性设为False,其余按钮中的Visible属性和Enabled属性设为True,以上按钮的设置可通过MMControl的属性栏内"自定义"项来设置。对话框控件的DefaultExt属性设为.DAT,DialogTitle属性设为"打开多媒体文件",Filter属性设为"*.DAT,*.WAV",InitDir属性设为"G:\MPEGAV"(假设光驱盘符为G)。 源代码如下: Option Explicit Private Sub Form_Load() Dim Response As Integer MMControl1.DeviceType = "MPEGVideo" CommonDialog1.ShowOpen '通过对话框选择不同的VCD文件 MMControl1.filename = CommonDialog1.filename '选定要播放的文件 MMControl1.Command = "Open" MMControl1.Command = "Play" End Sub Private Sub Form_Unload(Cancel As Integer) MMControl1.Command = "close" End Sub Private Sub MMControl1_BackClick(Cancel As Integer) '对Back按钮的功能改进 Dim i As Integer i = MMControl1.Position - 100 '数值100为后退量,可适当调整 If i < 0 Then MMControl1.From = 0 Else MMControl1.From = i End If MMControl1.Command = "Play" End Sub Private Sub MMControl1_StepClick(Cancel As Integer) '对Step按钮的功能改进 Dim j As Integer j = MMControl1.Position + 100 '数值100为前进量,可适当调整 If j > MMControl1.Length Then MMControl1.From = MMControl1.Length Else MMControl1.From = j End If MMControl1.Command = "Play" End Sub MCI控件还有很多属性,如画面播放位置hWndDisplay属性等等,大家可参阅相关资料自行摸索。 调整好窗体的标题、图标、颜色等,然后编译成.EXE文件,你就可以在Windows 下 拥有自己的VCD播放器了。 有时在一个窗口中出现较多的控制件时,如果能向导式地建议用户下一步该做什么,不失为上策。在Visual Basic的程序设计中,我们可以使用语句:object.SetFaocus使我们希望的控件得到输入焦点,举个例子:在Form1中我们加入一个按钮Command1和一个文本输入Text1,双击按钮控件,然后键入如下代码:text1.SetFocus 再按F5运行程序,您就会看到一单击按钮,文本框会立即取得输入焦点。另外,我们还可以使用语句:Sendkeys "{TAB}"使下一个控件获得焦点,但我们需要在设计时确定各控件的Index值。(在Properties窗口中)让控件自己感知自己的工作已完成,而主动将焦点让出,会使用户觉得应用程序很聪明,也减少了用户出错的机会。 可是当焦点切换的两个控件相隔有一定距离时,上述的方法有时也不足以引起用户的注意,那么一 种好的解决方法是将鼠标箭头也移到控件上。可惜,VB并不支持鼠标移动,那我们就求助API函数,API函数SetCursorPos可让我们如愿。 下面是子程序MoveCursorOn,它可让鼠标移动到指定控件上方。下列代码请放在declarations段中: Type PoinTAPI x As Integer y As Integer End Type Declare Sub SetCursorPos Lib "User"(Byval x As Integer,Byval y As Integer) Declare Sub ClientToScreen Lib "User"(Byval hwnd As Integer,IpPoint As PointAPI) Declare Function GetParent Lib "User"(Byval hwnd As Integer)As Integer 然后建立一个新的子程序(ALT,N?N?键入子程序名MoveCursorOn),下面是子程序的代码: Sub MoveCursorOn(source As Control) Dim Pt As PoinTAPI Dim hparent As Integer p.x=(Source.Left,Source.Width/2)/Screen.Twipsperpixel) p.y=(Source.Top,Source.Height/2)/Screen.Twipsperpixel) hparent=GetParent(source.hwnd) ClientToScreen hparent pt SetCursorPos pt.x pt.y End Sub 使用该子程序很容易,例如我们想把鼠标移动到按钮Command1上,就可使用语句Move Cursor On Command1 您会看到鼠标箭头已经指着按钮Command1。 需要说明的是,千万不要滥用该子程序。让鼠标自己满屏乱飞,我们的用户会感到失去对应用程序的控制,这是违反我们的初衷的。 在有数个输入框的窗口中(这在数据库应用程序中是很典型的),当用户完成第一个输入框的输入后,总爱习惯性的加一个回车,希望输入焦点落到下一个输入框中(DOS中大多数应用程序是如此),可往往事与愿违,这一回车却触发了拥有Default特性的按钮,结果不是关闭了当前窗口就是又蹦出另一窗口。
本文档为【vb程序设计实例】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_044822
暂无简介~
格式:doc
大小:64KB
软件:Word
页数:28
分类:工学
上传时间:2017-09-27
浏览量:119