![vb程序設(shè)計(jì)實(shí)例_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/a9608c15-33f8-4912-8f31-adb7d1917af9/a9608c15-33f8-4912-8f31-adb7d1917af91.gif)
![vb程序設(shè)計(jì)實(shí)例_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/a9608c15-33f8-4912-8f31-adb7d1917af9/a9608c15-33f8-4912-8f31-adb7d1917af92.gif)
![vb程序設(shè)計(jì)實(shí)例_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/a9608c15-33f8-4912-8f31-adb7d1917af9/a9608c15-33f8-4912-8f31-adb7d1917af93.gif)
![vb程序設(shè)計(jì)實(shí)例_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/a9608c15-33f8-4912-8f31-adb7d1917af9/a9608c15-33f8-4912-8f31-adb7d1917af94.gif)
![vb程序設(shè)計(jì)實(shí)例_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/a9608c15-33f8-4912-8f31-adb7d1917af9/a9608c15-33f8-4912-8f31-adb7d1917af95.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、vb程序設(shè)計(jì)實(shí)例 2021-5-22 15:37 提問者:淘淘的某在 | 懸賞分:20 | 瀏覽次數(shù):1688次編寫程序,設(shè)銀行定期存款的年利率為:1年期2.25%,2年期2.43%,3年期為2.70%,5年期為2.88%不記復(fù)利。今有X元,5年以后使用,共有如下6中存法:存一次5年期;存一次3年期,一次2年期;存一次3年期,兩次1年期;存兩次2年期,一次1年期;存一次2年期,三次1年期;存五次1年期.分別計(jì)算各種存法5年后到期的本息合計(jì),如下圖2021-5-22 17:06 最正確答案 Private Sub Form_Activate()'1年期2.25%,2年期2.43%,3年期
2、為2.70%,5年期為2.88%不記復(fù)利。今有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年后到期的本息合計(jì)" ss(x, 5, x5)Print "存一次3年期,一次2年期,5年后到期的本息合計(jì)" ss(ss(x, 3, x3), 2, x2)Print
3、 "存一次3年期,兩次1年期,5年后到期的本息合計(jì)" ss(ss(ss(x, 3, x3), 1, x1), 1, x1)Print "存兩次2年期,一次1年期,5年后到期的本息合計(jì)" ss(ss(ss(x, 2, x2), 2, x2), 1, x1)Print "存一次2年期,三次1年期,5年后到期的本息合計(jì)" ss(ss(ss(ss(x, 2, x2), 1, x1), 1, x1), 1, x1)Print "存五次1年期,5年后到期的本息合計(jì)" ss(ss(ss(ss(ss(x, 1, x1), 1, x
4、1), 1, x1), 1, x1), 1, x1)End SubPrivate Function ss(ByVal a As Double, 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 = T
5、rueEnd SubPrivate Sub Command2_Click()str = Text1.SelTextCommand3.Enabled = TrueEnd 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 = T
6、rueCommand3.Enabled = FalseCommand4.Enabled = TrueEnd Sub如何讓Command14功能鍵的目標(biāo)轉(zhuǎn)向text1 內(nèi)的內(nèi)容 我點(diǎn)的時(shí)候必須 把text1里面的內(nèi)容去選定后才能 進(jìn)行操作如何讓他自己選定為text1的內(nèi)容- -!上面的Command1剪切功能 Command2復(fù)制功能 Command3粘貼功能&
7、#160; Command4退出- -!三、利用VB三維面板控件設(shè)計(jì)流動條2000-09-15 00:00:00· 王金柱·yeskyVB提供了一個(gè)三維面板控件,利用這個(gè)控件可設(shè)計(jì)圖形效果的立體界面,從而使應(yīng)用程序的界面顯得更生動、美觀,該控件還可以設(shè)置各種形式的背景,然后在背景上顯示各種形式的字符,令人感興趣的是,使用三維面板控件,還可設(shè)計(jì)我們經(jīng)常在安裝程序中看到的表示安裝進(jìn)程的流動條,并可顯示進(jìn)程百分比,改變流動條的顏色等。 一、介紹屬性 FloodColor:確定流動條的顏
8、色,缺省為藍(lán)色。FloodPercent:顯示當(dāng)前過程如流動條進(jìn)行的百分比,參數(shù)改變時(shí)顯示的百分?jǐn)?shù)和流動條的面積改變,設(shè)為一整型值,取值范圍是0100。 FloodShowpct:決定是否在三維面板控件上顯示百分比,是一個(gè)邏輯值。為 True時(shí)顯示,為False時(shí)不顯示。 FloodType:表示用戶對三維面板控件的使用方式??扇≈涤?6個(gè),如下所示: 0缺省設(shè)置 1表示流動條方向從左到右 2表示流動條方向從右到左 3表示流動條方向從上到下 4表示流動條方向從下到上 5表示使用指定的顏色從圓心向外畫圓 二、流動條設(shè)計(jì) 如果在Windows3?X下,工具箱中不存在三維面板控件,可選擇File菜單
9、中的“Add File進(jìn)行添加,在彈出的對話框中找到WindowsSystem目錄,然后選定Threed?vbx文件即可,如果使用VB4.0,需在Tools菜單中選擇 Custom Controls命令,選定Sheridan 3d Controls項(xiàng),按OK按鈕,可在工具箱中增加三維面板控件。 啟動VB3?0,在窗體中畫一水平方向的長方形三維面板控件,按F4,在屬性窗口中設(shè)置其Name為P3d、Bevellnner為2Raised、FloodType為1、FloodshowPct為True,再在窗體中畫一個(gè)按鈕Command1,雙擊該按鈕,鍵入下面的代碼: Sub Command1_Click
10、() 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,運(yùn)行該程序,點(diǎn)擊Command按鈕,即可看到流動條效果。 四、使用VB設(shè)計(jì)具有動感的命令圖標(biāo)欄2000-09-15 00:00:00· 張嶸·VB編程樂園p>我們在使用Word、Excel等Windows應(yīng)用程序時(shí),經(jīng)常會見到在程序界面頂端有一行“立體式圖標(biāo)按鈕。當(dāng)用鼠標(biāo)按下某一個(gè)圖標(biāo)按鈕時(shí),程序就執(zhí)行相應(yīng)的操作。這一行“立體式圖標(biāo)按鈕通常就稱作命令圖標(biāo)
11、欄或工具條。命令圖標(biāo)欄一般提供一些最常用的命令,供用戶快速地取用,并且它設(shè)計(jì)時(shí)采用了“立體式按鈕,操作時(shí)會產(chǎn)生凹下去和凸出來的“動感,筆者這里就談?wù)勅绾斡肰B來建立具有“動感的命令圖標(biāo)欄。使命令圖標(biāo)具有“動感是依靠對命令圖標(biāo)的不同狀態(tài)的圖像切換來獲得的。當(dāng)鼠標(biāo)按下時(shí),圖標(biāo)顯示為凹入狀態(tài)的圖像;當(dāng)松開時(shí),圖標(biāo)顯示為凸出狀態(tài)的圖像。通過圖像切換就使命令圖標(biāo)具有了“動感,具體設(shè)計(jì)步驟如下:1。首先在窗體中創(chuàng)立一個(gè)圖片框Picture Box,將其Align屬性置為1,使圖片框固定在窗體上端,調(diào)節(jié)其寬度使其能安置圖像或命令按鈕。2。在圖標(biāo)框內(nèi)創(chuàng)立假設(shè)干個(gè)圖像框Image Control,設(shè)置其Auto
12、sizeTrue,Picture屬性在程序運(yùn)行中設(shè)置。3。編寫程序代碼。這里假設(shè)某個(gè)命令圖標(biāo)凸出狀態(tài)的圖像文件名為zrup.bmp,凹入狀態(tài)的圖像文件名為zrdown.bmp。窗體裝入時(shí):Sub formloadImagel.pictureLoadpicturezrup.bmp 命令圖標(biāo)凸出End sub鼠標(biāo)按下時(shí):Sub ImagelmousedownButton As Integer Shift As Integer, X As single,Y As singleImagel.pictureLoadpicturezrdown.bmp 命令圖標(biāo)如下:End sub鼠標(biāo)松開時(shí):Sub Ima
13、gelmouseupButton As Integer,Shift As Integer,X As single,Y As single Imagel.pictureLoadpicturezrup.bmp 命令圖標(biāo)凸出End sub以上只能使命令圖標(biāo)具備凹下去的功能,但當(dāng)在按鼠標(biāo)按鈕不放,并拖曳鼠標(biāo)使光標(biāo)移到外頭,原來圖標(biāo)仍然處于凹下狀態(tài)。要使其自動凸起,就要編寫如下代碼:Sub Imagel-mouseup(Button As Integer,Shift As Integer,X As single,Y As single)Select Case ButtonCase 1If X$#60;=
14、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通過以上三步驟就可以建立具有“動感的命令圖標(biāo),假設(shè)具有多個(gè)命令圖標(biāo)時(shí),可通過創(chuàng)立圖像控制數(shù)組來實(shí)現(xiàn)。BMP是常見的一種圖像格式,也可以使用VB提供的豐富的不同狀態(tài)的命令圖標(biāo)位圖文件,它在VB的子目錄bitmaps中
15、。 窗體頂端窗體底端五、實(shí)現(xiàn)窗體內(nèi)部的左右移動'分割區(qū)的寬度 Private Const SPL99vTERWIDTH = 45 '最小移動寬度 Private Const HMIN = 15 'picLeft和picRight的寬度相對于窗體的比例 Private Percent As Single '正在拖動的標(biāo)志 Private DragFlag As Boolean '每次拖動后需要重排窗體上的控件 Private Sub RedrawMe() Dim NewWidth As Single ' 忽略窗體縮小的情況 If WindowSta
16、te = 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.
17、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) '定義鼠標(biāo)為vbSizeWE型 MousePointer = vbSizeWE Percent = X / ScaleWidth RedrawMe End Sub
18、Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) DragFlag = False MousePointer = 0 '此行語句實(shí)際沒有起作用 End Sub 六、封面的設(shè)計(jì)一、封面的設(shè)計(jì)是這樣的,先出現(xiàn)一窗體,上面為你喜歡的圖案。然后出現(xiàn)一艘從左向右行駛著的船。屏幕上方從兩側(cè)分別移動出“歡送兩個(gè)字。具體的制作方法是:把預(yù)先選好的背景圖案裝入封面窗體中,窗體命名為CAI。再分別在三個(gè)圖像控件(image)中裝入預(yù)先制作好的位圖“歡、“迎和船型圖案。
19、然后把三個(gè)image放置在初始位置(即圖案剛在窗體出現(xiàn)時(shí)的位置),并把它們的可視屬性都設(shè)置為“false。程序如下: Sub Form_load() cai.Show 顯示封面窗體 Dim i 定義變量 image3.visible=True 船型圖像控件出現(xiàn) a1: If image3.Left < 6120 Then 6120為船移動到屏幕右邊的坐標(biāo),此值可以隨需要選取 image3.Move image3.Left50 移動此圖像控件如嫌移動慢,可改變移動值 Goto a1 End If image1.visible=True “歡字出現(xiàn) a2: If image1.Left &l
20、t; 2120 Then 2120為“歡字移動到屏幕中間的位置 image1.Move image1.Left50 移動此圖像控件 Goto a2 End If image2.visible=True “迎字出現(xiàn) a3: If image2.Left > 5420 Then 5420為“迎字移動到屏幕中間的位置 image2.Move image2.Left50 移動此圖像控件 Goto a3 End If For i=1 To 10000 使窗體暫停一段時(shí)間時(shí)間長短可通過改變循環(huán)次數(shù)實(shí)現(xiàn) Next i menul.Show 顯示程序主窗體 Unload cai 卸載封面窗體 End S
21、ub 二、簡單的“動畫 點(diǎn)擊一3D按鈕后,屏幕表現(xiàn)光線平行進(jìn)入一玻璃管,在管中有一散射中心,有的光線射到此中心后反射到管的初始端。程序如下: 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 St
22、ep1 反射光線第一次射到管壁上 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, 0, 0) 沒有遇到散射中心的兩條光線,為黑色,繼續(xù)前進(jìn) Next j For k=4800 To 3360 Step1 反射光線第二次射到管壁上 Line(4800,2520)(k,2520(4800k).33333333), RGB(255, 0, 0
23、) 反射光線,顏色為紅色 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 反射光線第三次射到管壁上 Line(3360,3000)(m,3000(3360m).33333333), RGB(255, 0, 0) 反射光線,顏色為紅色 Next m End Sub 三、封底 封底的設(shè)計(jì)是:先出現(xiàn)全黑的屏幕,然后從上至下逐漸拉出白底紅字的“再見的字樣。先按要求在畫板
24、中做一個(gè)BMP圖,上面寫著“再見。然后在一名為BYE的窗體中參加一個(gè)全屏大的Picturel,將BMP圖裝入。程序如下: Sub Form_Load() Dim i 定義變量 bye.Show 封底出現(xiàn) Unload menu1 卸載主菜單 al: If picture1.Height < 7130 Then 7130為圖的高度 picturel.Height=picture1.Height50 下拉屏幕 GoTo al End If For i=1 To 20000 使窗體暫停一段時(shí)間 Next i End 結(jié)束所有操作 End Sub 利用Visual Basic讓命令行軟件全面轉(zhuǎn)向
25、Windows 眾所周知,Windows以其優(yōu)美的圖形界面,方便快捷的操作環(huán)境,已成為當(dāng)今的主流操作系統(tǒng),但由于其程序編寫過于復(fù)雜,有很多用戶常用的工具和小程序仍然只能運(yùn)行于DOS環(huán)境下,造成Windows和DOS的頻繁切換、使工作缺乏連續(xù)性和效率低下。有什么方法可以解決這一問題呢?等待For Windows版本的面市,但仍會造成重復(fù)投資。據(jù)筆者觀察發(fā)現(xiàn),常用工具中有一局部為命令行軟件,這些軟件完全可以利用VB改編成For Windows版本的。首先由于VB的簡單易用,使Windows的界面設(shè)計(jì)變得異常簡單直觀。所以可輕而易舉的將命令選項(xiàng)、開關(guān)等轉(zhuǎn)化為對應(yīng)的圖形界面如復(fù)選鈕等。其次由于VB為用
26、戶提供了Shell函數(shù),也使得命令調(diào)用非常簡單。通過Shell其實(shí)你只做了個(gè)界面,核心還是DOS下的原來工具。其函數(shù)格式如下: Shell命令字符串<,窗口類型> 命令字符串即具體執(zhí)行的命令如字符串“arj e a:user.arj c:user 有關(guān)字符串的操作可查閱有關(guān)書籍。至于窗口型類型缺省即可。最后只須注意,在Shell執(zhí)行函數(shù)之前,有必要對命令行中有可能引發(fā)錯(cuò)誤的參數(shù)進(jìn)行檢測,如在執(zhí)行前檢查用戶給的源文件是否存在等,以保證到達(dá)預(yù)期結(jié)果。筆者用VB改編的Arj for Windows版本,其結(jié)果出乎想象。希望大家能自己動手全面轉(zhuǎn)向Windows。 七、利用VB
27、產(chǎn)生屏幕變暗的效果想利用 VB 編程實(shí)現(xiàn)屏幕變暗的效果像關(guān)閉 Win95 時(shí)的效果,只要按下面的步驟來做: 1. 在 Form1 中參加兩個(gè) CommandButton 和一個(gè) 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 De
28、clare 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
29、, 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, ByV
30、al 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
31、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.TwipsPerP
32、ixelY 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 = Arra
33、y(&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.For
34、eColor = RGB(0, 0, 0) Picture1.BackColor = RGB(255, 255, 255) Picture1.ScaleMode = 3 End Sub 運(yùn)行程序,按 Command1 就可以使屏幕暗下來,按 Command2 恢復(fù)。 八、Private Declare Function GetDesktopWindow Lib "user32" () As LongPrivate Declare Function GetDC
35、0;Lib "user32" (ByVal hwnd As Long) As LongPrivate Declare Function StretchBlt Lib "gdi32" _
36、60; (ByVal hdc As Long, _
37、0;ByVal x As Long, _ ByVal y As Long, _
38、 ByVal nWidth As Long, _
39、; ByVal nHeight As Long, _
40、60; ByVal hSrcDC As Long, _ ByVal xSrc As Lon
41、g, _ ByVal ySrc As Long, _
42、0; ByVal nSrcWidth As Long, _
43、 ByVal nSrcHeight As Long, _ &
44、#160; ByVal dwRop As Long) As LongPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) EndEnd SubPrivate Sub Form_Load() set the showintaskbar proper
45、ty to false set the borderstyle of the form to none Form1.AutoRedraw = True Form1.ScaleMode = vbPixels a = GetDesktopWindow()
46、160; b = GetDC(a) StretchBlt Form1.hdc, 0, 0, Screen.Width, Screen.Height, b, 0, _ Screen.Height, Screen.Width, -Scre
47、en.Height, vbSrcCop 1 2 下一頁 九在VB中實(shí)現(xiàn)閃動標(biāo)題欄摘要 在你的應(yīng)用程序中,你可能會希望將應(yīng)用程序的標(biāo)題欄進(jìn)行閃動,以提醒用戶進(jìn)行某種操作,本文介紹了如何使一個(gè)窗口的標(biāo)題欄進(jìn)行閃動。 閃動標(biāo)題欄 閃動一個(gè)窗口的標(biāo)題欄意味著改變它的標(biāo)題欄的外觀,例如它從活動變?yōu)椴换顒?,或是從不活動變?yōu)榛顒拥鹊取V灰隳茉赩isual Basic中得到窗口的句柄,你就可以使用Windows 應(yīng)用程序編程接口API函數(shù)來使該窗口的標(biāo)題欄進(jìn)行閃動。函數(shù)FlashWindows可以被用使一個(gè)特定的窗口閃動一次。要使用該函數(shù),需要將如下的聲明
48、語句包含在你的窗體的通用聲明局部中: #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 該函數(shù)需要2個(gè)參數(shù),第一個(gè)參數(shù)是要閃動標(biāo)題欄的窗口的句柄,第二個(gè)參數(shù)用于指
49、定是設(shè)置窗口的閃動狀態(tài),還是恢復(fù)其原始狀態(tài)。如果該bInvert參數(shù)非0,那么說明窗口的標(biāo)題欄被閃動,如果該參數(shù)為0,那么說明窗口的標(biāo)題欄被恢復(fù)為原始狀態(tài)。該函數(shù)所返回的值用于指定調(diào)用該函數(shù)前窗口的狀態(tài),如果該返回值非0,那么說明窗口在調(diào)用該函數(shù)之前是活動的,否那么,如果返回值為0,那么說明調(diào)用函數(shù)前窗口是非活動的。當(dāng)使用該FlashWindow函數(shù)時(shí),一個(gè)較好的方法是將標(biāo)題欄閃動的頻率設(shè)置為同脫字符也即閃動的光標(biāo)相同,脫字符的閃動頻率可以通過調(diào)用函數(shù)GetCaretBlinkTime來獲得。要使用該函數(shù),需要將如下的聲明語句包含在你的窗體的通用聲明局部中: #If Win32 Then De
50、clare Function GetCaretBlinkTime Lib "user32" () As Long #Else Declare Function GetCaretBlinkTime Lib "User" () As Integer #End If 該函數(shù)返回用毫秒值表示的時(shí)間。 樣例程序 1. 在Visual Basic中開始一個(gè)新的工程,采用缺省的方法建立Form1。 2. 在Form1上添加一個(gè)定時(shí)器控件,采用缺省的方法建立Timer1。 3. 將如下的代碼添加到Form1的Form_GotFocus事件中: Private Sub F
51、orm_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. 添加第二個(gè)窗體,采用缺省的方法建立Form2。 7. 將如下
52、的代碼添加到Form2的單擊事件中: Private Sub Form_Click() Form1.Timer1.Enabled = True End Sub 8. 添加一個(gè)新的模塊,采用缺省的方法建立Module1.Bas。將如下的代碼添加到該模塊的通用聲明局部中: #If Win32 Then Declare Function FlashWindow Lib "user32" ( _ ByVal hwnd As Long, _ ByVal bInvert As Long) As Long Declare Function GetCaretBlinkTime Lib &q
53、uot;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鍵來運(yùn)行該樣例程序,單擊Form2窗體,這時(shí)F
54、orm1窗體將處于非活動方式,其標(biāo)題欄將會不斷閃爍。單擊Form1使它它變?yōu)榛顒臃绞?,那么窗體的標(biāo)題欄將不再閃爍 11、一組VB實(shí)用小程序用VB實(shí)現(xiàn)編程離不開函數(shù)調(diào)用及Windows API函數(shù)的調(diào)用,以下是筆者收集的一些實(shí)用的小例程,它們可以直接用在你的實(shí)際編程中,也可以根據(jù)實(shí)際應(yīng)用加以擴(kuò)充完善。其中涉及Windows API函數(shù)調(diào)用的代碼你可以從VB5.0系統(tǒng)的API函數(shù)查看器中復(fù)制函數(shù)定義內(nèi)容,以防止出錯(cuò)。 1.系統(tǒng)型表單 系統(tǒng)型意味著用戶完成當(dāng)前表單操作之前無法進(jìn)行其它操作,這對于編制系統(tǒng)口令保護(hù)界面尤為重要。如果你希望當(dāng)前表單系統(tǒng)型表單,需如下定義API函數(shù): Decl
55、are Function SetSysModalWindow Lib "User" (ByVal hWnd As Integer) As Integer 然后調(diào)用:oldSysModal = SetSysModalWindow(Form.hWnd) 2.獲取驅(qū)動器類型 代碼如后: Declare Function GetDriveType Lib “Kernel" (ByVal nDrive As Integer) As Integer Global Const DRIVE_REMOVEABLE = 2, DRIVE_FIXED = 3 Global Const
56、DRIVE_REMOTE = 4 3.表單在對中 本子程序功能使表單定位在屏幕中央,在表單中任何需要表單對中的地方只需參加一行代碼: “centerwindow.me即可成功調(diào)用。 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. 定義變量 許多的程序員習(xí)慣于如下定義變量: Dim iNum, iNextNum, iLastNum as Integer 實(shí)際上只有最后一個(gè)變量被設(shè)為了整型,前兩
57、個(gè)變量那么是系統(tǒng)的缺省的Variant 數(shù)據(jù)類型,而Variant 數(shù)據(jù)類型可用來替換任何數(shù)據(jù)類型,顯然對于精練的程序設(shè)計(jì)是不利的。 正確的方法如下: Dim iNum as Integer Dim iNextNum as Integer Dim iLastNum as Integer 5. 使文本高亮 本子程序使被觸發(fā)的諸如文本,標(biāo)簽等控件的文本被選中 Public Sub SetSelected() Screen.ActiveControl.SelStart = 0 Screen.ActiveControl.SelLength = Len(Screen.ActiveControl.Text
58、) End Sub 6. 關(guān)閉其它程序 下面的代碼可關(guān)閉內(nèi)存中的其它程序 title = "MyAPP" '定義你需關(guān)閉的程序窗口的標(biāo)題 ihWnd = findWindow(0, Title) ihTask = GetWindowTask (ihWnd) iRet = PostAppMessage(ihTask, WM_QU99v, 0, 0) 7. 文件存在否? 本函數(shù)返回查找的文件是否存在。 Function FileExist(Filename as string) as Boolean FileExist = Iif(Dir(Filename) <&
59、gt; "", True, False) End Function 8. 主程序唯一 用下面提供的代碼作你的主程序可防止應(yīng)用程序的多重執(zhí)行,你應(yīng)當(dāng)將它放在確信需要它的代碼模塊內(nèi)。 Public Sub Main() If App.PrevInstance Then BringWindowToTop frmMain.hwnd Else Load frmMain End If End Sub 上面這些精悍的代碼對于專業(yè)程序員來說非常有實(shí)用價(jià)值,希望你能從中獲得啟發(fā)。 12、VB5.0中實(shí)現(xiàn)字體閃爍效果用Visual Basic我們可設(shè)計(jì)出形形色色符合用戶要求的應(yīng)用
60、程序,它確實(shí)是一種很好的用戶程序開發(fā)工具,可VB提供的根本控件中都沒有閃爍屬性設(shè)置,使應(yīng)用程序界面缺乏“活性,近期筆者設(shè)計(jì)軟件封面時(shí),就要求字體不斷地閃爍,為此,經(jīng)反復(fù)分析、實(shí)踐,最后終于成功地實(shí)現(xiàn)字體閃爍效果,現(xiàn)將設(shè)計(jì)過程說明如下: (1)創(chuàng)立一個(gè)新目標(biāo)文件(project1),并建立一個(gè)窗體Form1。 (2)在Form1上配置一個(gè)計(jì)時(shí)器控制Timer1、標(biāo)簽控件Label1、命令控件Command1。 (3)各控件屬性設(shè)置: Timer1的Enabled設(shè)置為True; Label1的Caption設(shè)置為需閃爍的字體:“江西省黎川縣職業(yè)中專電腦室設(shè)計(jì)、 Font設(shè)置字體及大小、Backs
61、tyle設(shè)置為“0Transparent; Command1中的Caption設(shè)置為“退出。 (4)程序代碼清單: Option Explicit Private Sub Form_ Load() Label1.Top=850 設(shè)置閃爍字體的顯示位置 Label1.Left=750 Timer1.Interval=555 設(shè)置字體閃爍間隔時(shí)間 Form1.Windowstate=2 End Sub 利用計(jì)時(shí)器控件Timer有規(guī)律地改變字體顏色(Forecolor) Private Sub Timer1_Timer() Chc Label1,1,4,8 End Sub Chc過程是循環(huán)地改變字體
62、顏色(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
63、 Sub Private Sub Command1_Click() End End Sub 程序除標(biāo)簽控件外,還適用于許多VB根本控件,實(shí)現(xiàn)諸多閃爍效果,例如:閃爍文本框、閃爍文件列表框等,極大豐富了VB應(yīng)用程序界面,相當(dāng)實(shí)用。 13、VB實(shí)用編程兩例該程序通過VB的多媒體控件MCI32.OCX可以翻開MPEG壓縮文件(如VCD2.0版的.DAT文件)來實(shí)現(xiàn)一個(gè)VCD播放器的設(shè)計(jì) 首先必須確保在你的Windows系統(tǒng)中SYSTEM.INI文件關(guān)于MCI中需有MPEGVideo項(xiàng)(一般Windows 95和Windows 98中均有此項(xiàng))。 次在VB中建立一個(gè)新窗口,參加多媒體部件Microso
64、ft Multimedia Control 5.0( 位于C:WindowsSystemMCI32.OCX),以及對話框部件Microsoft Common Dialog Control 5.0( 位于C:WindowsSystemCOMMONDLG32.OCX),將MCI控件拖放至窗體Form上,調(diào)整其大小,并將窗體的大小也調(diào)整為與其同樣大小;將其九個(gè)按鈕(從左至右為:Prev、Next、Play、Pause、Back、Step、Stop、Record和Eject)中的Record按鈕的Visible屬性設(shè)為False,其余按鈕中的Visible屬性和Enabled屬性設(shè)為True,以上按鈕的設(shè)置可通過MMControl的屬性欄內(nèi)"自定義"項(xiàng)來設(shè)置。對話框控件的DefaultExt屬性設(shè)為.DAT,DialogTitle屬性設(shè)為"翻開多媒體文件",Filter屬性設(shè)為"*.DAT,*.WAV",InitDir屬性設(shè)為"G:MPEGAV"(假設(shè)光驅(qū)盤符為G)。 源代碼如下: Option Explicit Private Sub Form_Load() Dim Response As I
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保導(dǎo)向的商業(yè)地產(chǎn)綠色交通規(guī)劃
- 未來教育發(fā)展趨勢研討會
- 中國開塞露行業(yè)市場全景監(jiān)測及投資前景展望報(bào)告
- 中國血液灌流器市場調(diào)查研究及行業(yè)投資潛力預(yù)測報(bào)告
- 2025年海南省地區(qū)網(wǎng)絡(luò)工程師職位薪酬調(diào)查報(bào)告
- ppp 股東合同范本
- 醫(yī)療承包經(jīng)營合同范本
- 保安保潔勞務(wù)合同范本
- 農(nóng)莊拆除工程合同范本
- 現(xiàn)代企業(yè)管理模式在商業(yè)策劃中的應(yīng)用實(shí)踐
- 第五講鑄牢中華民族共同體意識-2024年形勢與政策
- 安檢服務(wù)課件教學(xué)課件
- 隧道危險(xiǎn)源清單
- 中華人民共和國學(xué)前教育法
- 2024年貴州公務(wù)員考試申論試題(B卷)
- 解剖臺項(xiàng)目運(yùn)營指導(dǎo)方案
- 抑郁癥課件教學(xué)課件
- 關(guān)于消防安全評估設(shè)備操作說明詳解
- 2025年高考作文專練(25道真題+審題立意+范文)- 2025年高考語文作文備考總復(fù)習(xí)
- Unit1Myfamily單詞解讀(課件)Joinin外研劍橋英語五年級上冊
評論
0/150
提交評論