vb程序設(shè)計(jì)實(shí)例--精選文檔_第1頁
vb程序設(shè)計(jì)實(shí)例--精選文檔_第2頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 vb程序設(shè)計(jì)實(shí)例 2009-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ì),如圖所示2009-5-22 17:06 最佳答案 Private Sub Form_Activate()'1年期2.25%,2年期2.43%,

2、3年期為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)

3、Print "存一次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),

4、 1, x1), 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.Enable

5、d = TrueEnd 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.Enable

6、d = TrueCommand3.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、粘貼功能          Command4退出- -!三、利用VB三維面板控件設(shè)計(jì)流動(dòng)條2000-09-15 00:00:00· 王金柱·yeskyVB提供了一個(gè)三維面板控件,利用這個(gè)控件可設(shè)計(jì)圖形效果的立體界面,從而使應(yīng)用程序的界面顯得更生動(dòng)、美觀,該控件還可以設(shè)置各種形式的背景,然后在背景上顯示各種形式的字符,令人感興趣的是,使用三維面板控件,還可設(shè)計(jì)我們經(jīng)常在安裝程序中看到的表示安裝進(jìn)程的流動(dòng)條,并可顯示進(jìn)程百分比,改變流動(dòng)條的顏色等。 一、介紹屬性 FloodColor:確定

8、流動(dòng)條的顏色,缺省為藍(lán)色。FloodPercent:顯示當(dāng)前過程如流動(dòng)條進(jìn)行的百分比,參數(shù)改變時(shí)顯示的百分?jǐn)?shù)和流動(dòng)條的面積改變,設(shè)為一整型值,取值范圍是0100。 FloodShowpct:決定是否在三維面板控件上顯示百分比,是一個(gè)邏輯值。為 True時(shí)顯示,為False時(shí)不顯示。 FloodType:表示用戶對三維面板控件的使用方式??扇≈涤?6個(gè),如下所示: 0缺省設(shè)置 1表示流動(dòng)條方向從左到右 2表示流動(dòng)條方向從右到左 3表示流動(dòng)條方向從上到下 4表示流動(dòng)條方向從下到上 5表示使用指定的顏色從圓心向外畫圓 二、流動(dòng)條設(shè)計(jì) 如果在Windows3?X下,工具箱中不存在三維面板控件,可選擇F

9、ile菜單中的“Add File”進(jìn)行添加,在彈出的對話框中找到WindowsSystem目錄,然后選定Threed?vbx文件即可,如果使用VB4.0,需在Tools菜單中選擇 Custom Controls命令,選定Sheridan 3d Controls項(xiàng),按OK按鈕,可在工具箱中增加三維面板控件。 啟動(dòng)VB3?0,在窗體中畫一水平方向的長方形三維面板控件,按F4,在屬性窗口中設(shè)置其Name為P3d、Bevellnner為2Raised、FloodType為1、FloodshowPct為True,再在窗體中畫一個(gè)按鈕Command1,雙擊該按鈕,鍵入下面的代碼: Sub Command1

10、_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,運(yùn)行該程序,點(diǎn)擊Command按鈕,即可看到流動(dòng)條效果。 四、使用VB設(shè)計(jì)具有動(dòng)感的命令圖標(biāo)欄2000-09-15 00:00:00· 張嶸·VB編程樂園p>我們在使用Word、Excel等Windows應(yīng)用程序時(shí),經(jīng)常會(huì)見到在程序界面頂端有一行“立體式”圖標(biāo)按鈕。當(dāng)用鼠標(biāo)按下某一個(gè)圖標(biāo)按鈕時(shí),程序就執(zhí)行相應(yīng)的操作。這一行“立體式”圖標(biāo)按鈕通

11、常就稱作命令圖標(biāo)欄或工具條。命令圖標(biāo)欄一般提供一些最常用的命令,供用戶快速地取用,并且它設(shè)計(jì)時(shí)采用了“立體式”按鈕,操作時(shí)會(huì)產(chǎn)生凹下去和凸出來的“動(dòng)感”,筆者這里就談?wù)勅绾斡肰B來建立具有“動(dòng)感”的命令圖標(biāo)欄。使命令圖標(biāo)具有“動(dòng)感”是依靠對命令圖標(biāo)的不同狀態(tài)的圖像切換來獲得的。當(dāng)鼠標(biāo)按下時(shí),圖標(biāo)顯示為凹入狀態(tài)的圖像;當(dāng)松開時(shí),圖標(biāo)顯示為凸出狀態(tài)的圖像。通過圖像切換就使命令圖標(biāo)具有了“動(dòng)感”,具體設(shè)計(jì)步驟如下:1。首先在窗體中創(chuàng)建一個(gè)圖片框(Picture Box),將其Align屬性置為1,使圖片框固定在窗體上端,調(diào)節(jié)其寬度使其能安置圖像或命令按鈕。2。在圖標(biāo)框內(nèi)創(chuàng)建若干個(gè)圖像框(Image

12、Control),設(shè)置其AutosizeTrue,Picture屬性在程序運(yùn)行中設(shè)置。3。編寫程序代碼。這里假設(shè)某個(gè)命令圖標(biāo)凸出狀態(tài)的圖像文件名為zrup.bmp,凹入狀態(tài)的圖像文件名為zrdown.bmp。窗體裝入時(shí):Sub formload()Imagel.pictureLoadpicture(zrup.bmp) 命令圖標(biāo)凸出End sub鼠標(biāo)按下時(shí):Sub Imagelmousedown(Button As Integer Shift As Integer, X As single,Y As single)Imagel.pictureLoadpicture(zrdown.bmp) 命令圖

13、標(biāo)如下:End sub鼠標(biāo)松開時(shí):Sub Imagelmouseup(Button As Integer,Shift As Integer,X As single,Y As single) Imagel.pictureLoadpicture(zrup.bmp) 命令圖標(biāo)凸出End sub以上只能使命令圖標(biāo)具備凹下去的功能,但當(dāng)在按鼠標(biāo)按鈕不放,并拖曳鼠標(biāo)使光標(biāo)移到外頭,原來圖標(biāo)仍然處于凹下狀態(tài)。要使其自動(dòng)凸起,就要編寫如下代碼:Sub Imagel-mouseup(Button As Integer,Shift As Integer,X As single,Y As single)Select

14、 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通過以上三步驟就可以建立具有“動(dòng)感”的命令圖標(biāo),若具有多個(gè)命令圖標(biāo)時(shí),可通過創(chuàng)建圖像控制數(shù)組來實(shí)現(xiàn)。BMP是常見的一種圖像格式,也可以使用VB提供的豐富的不同

15、狀態(tài)的命令圖標(biāo)位圖文件,它在VB的子目錄bitmaps中。 窗體頂端窗體底端五、實(shí)現(xiàn)窗體內(nèi)部的左右移動(dòng)'分割區(qū)的寬度 Private Const SPL99vTERWIDTH = 45 '最小移動(dòng)寬度 Private Const HMIN = 15 'picLeft和picRight的寬度相對于窗體的比例 Private Percent As Single '正在拖動(dòng)的標(biāo)志 Private DragFlag As Boolean '每次拖動(dòng)后需要重排窗體上的控件 Private Sub RedrawMe() Dim NewWidth As Single

16、' 忽略窗體縮小的情況 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

17、的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) '定義鼠標(biāo)為vbSizeWE型 MousePointer = vbSizeWE Percent = X /

18、ScaleWidth RedrawMe End Sub 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è)分別移動(dòng)出“歡迎”兩個(gè)字。具體的制作方法是:把預(yù)先選好的背景圖案裝入封面窗體中,窗體命名為CAI。再分別在三個(gè)圖像控件

19、(image)中裝入預(yù)先制作好的位圖“歡”、“迎”和船型圖案。然后把三個(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為船移動(dòng)到屏幕右邊的坐標(biāo),此值可以隨需要選取 image3.Move image3.Left50 移動(dòng)此圖像控件如嫌移動(dòng)慢,可改變移動(dòng)值 Goto a1 End If image1.visible=

20、True “歡”字出現(xiàn) a2: If image1.Left < 2120 Then 2120為“歡”字移動(dòng)到屏幕中間的位置 image1.Move image1.Left50 移動(dòng)此圖像控件 Goto a2 End If image2.visible=True “迎”字出現(xiàn) a3: If image2.Left > 5420 Then 5420為“迎”字移動(dòng)到屏幕中間的位置 image2.Move image2.Left50 移動(dòng)此圖像控件 Goto a3 End If For i=1 To 10000 使窗體暫停一段時(shí)間時(shí)間長短可通過改變循環(huán)次數(shù)實(shí)現(xiàn) Next i menul.

21、Show 顯示程序主窗體 Unload cai 卸載封面窗體 End Sub 二、簡單的“動(dòng)畫” 點(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(

22、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, 0, 0) 沒有遇到散射中心的兩條光線,為黑色,繼續(xù)前進(jìn) Next j For k=4800 To 3360 Step1 反射光線第二次射到管壁上 Line(4800,2520)(k

23、,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 反射光線第三次射到管壁上 Line(3360,3000)(m,3000(3360m).33333333), RGB(255, 0, 0) 反射光線,顏色為紅色 Next m End Sub 三、封底 封底的設(shè)計(jì)是:先

24、出現(xiàn)全黑的屏幕,然后從上至下逐漸拉出白底紅字的“再見”的字樣。先按要求在畫板中做一個(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

25、結(jié)束所有操作 End Sub 利用Visual Basic讓命令行軟件全面轉(zhuǎn)向Windows 眾所周知,Windows以其優(yōu)美的圖形界面,方便快捷的操作環(huán)境,已成為當(dāng)今的主流操作系統(tǒng),但由于其程序編寫過于復(fù)雜,有很多用戶常用的工具和小程序仍然只能運(yùn)行于DOS環(huán)境下,造成Windows和DOS的頻繁切換、使工作缺乏連續(xù)性和效率低下。有什么方法可以解決這一問題呢?等待For Windows版本的面市,但仍會(huì)造成重復(fù)投資。據(jù)筆者觀察發(fā)現(xiàn),常用工具中有一部分為命令行軟件,這些軟件完全可以利用VB改編成For Windows版本的。首先由于VB的簡單易用,使Windows的界面設(shè)計(jì)變得異常簡單直觀。所以

26、可輕而易舉的將命令選項(xiàng)、開關(guān)等轉(zhuǎn)化為對應(yīng)的圖形界面(如復(fù)選鈕等)。其次由于VB為用戶提供了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

27、版本,其結(jié)果出乎想象。希望大家能自己動(dòng)手全面轉(zhuǎn)向Windows。   七、利用VB產(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 "user

28、32" (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" (ByV

29、al 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, B

30、yVal 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

31、 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.TwipsPe

32、rPixelX 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

33、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) h

34、Brush = CreatePatternBrush(hBitmap) Picture1.ForeColor = 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 LongP

35、rivate Declare Function GetDC 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

38、 Long, _                                ByVal nWidth As Long, _        

39、;                        ByVal nHeight As Long, _                  

40、60;             ByVal hSrcDC As Long, _                             &#

41、160;  ByVal xSrc As Long, _                                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()   &

45、#160;set the showintaskbar property to false    set the borderstyle of the form to none    Form1.AutoRedraw = True    Form1.ScaleMode = vbPixels  

46、0; a = GetDesktopWindow()    b = GetDC(a)    StretchBlt Form1.hdc, 0, 0, Screen.Width, Screen.Height, b, 0, _              &#

47、160;Screen.Height, Screen.Width, -Screen.Height, vbSrcCop 1 2 下一頁  九在VB中實(shí)現(xiàn)閃動(dòng)標(biāo)題欄摘要 在你的應(yīng)用程序中,你可能會(huì)希望將應(yīng)用程序的標(biāo)題欄進(jìn)行閃動(dòng),以提醒用戶進(jìn)行某種操作,本文介紹了如何使一個(gè)窗口的標(biāo)題欄進(jìn)行閃動(dòng)。 閃動(dòng)標(biāo)題欄 閃動(dòng)一個(gè)窗口的標(biāo)題欄意味著改變它的標(biāo)題欄的外觀,例如它從活動(dòng)變?yōu)椴换顒?dòng),或是從不活動(dòng)變?yōu)榛顒?dòng)等等。只要你能在Visual Basic中得到窗口的句柄,你就可以使用Windows 應(yīng)用程序編程接口(API)函數(shù)來使該窗口的標(biāo)題欄進(jìn)

48、行閃動(dòng)。函數(shù)FlashWindows可以被用使一個(gè)特定的窗口閃動(dòng)一次。要使用該函數(shù),需要將如下的聲明語句包含在你的窗體的通用聲明部分中: #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 Int

49、eger #End If 該函數(shù)需要2個(gè)參數(shù),第一個(gè)參數(shù)是要閃動(dòng)標(biāo)題欄的窗口的句柄,第二個(gè)參數(shù)用于指定是設(shè)置窗口的閃動(dòng)狀態(tài),還是恢復(fù)其原始狀態(tài)。如果該bInvert參數(shù)非0,則表明窗口的標(biāo)題欄被閃動(dòng),如果該參數(shù)為0,則表明窗口的標(biāo)題欄被恢復(fù)為原始狀態(tài)。該函數(shù)所返回的值用于指定調(diào)用該函數(shù)前窗口的狀態(tài),如果該返回值非0,則表明窗口在調(diào)用該函數(shù)之前是活動(dòng)的,否則,如果返回值為0,則表明調(diào)用函數(shù)前窗口是非活動(dòng)的。當(dāng)使用該FlashWindow函數(shù)時(shí),一個(gè)較好的方法是將標(biāo)題欄閃動(dòng)的頻率設(shè)置為同脫字符(也即閃動(dòng)的光標(biāo))相同,脫字符的閃動(dòng)頻率可以通過調(diào)用函數(shù)GetCaretBlinkTime來獲得。要使用該

50、函數(shù),需要將如下的聲明語句包含在你的窗體的通用聲明部分中: #If Win32 Then Declare 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.

51、 將如下的代碼添加到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.hwn

52、d, 1) End Sub 6. 添加第二個(gè)窗體,采用缺省的方法建立Form2。 7. 將如下的代碼添加到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

53、 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 A

54、s Integer #End If 通過單擊F5鍵來運(yùn)行該樣例程序,單擊Form2窗體,這時(shí)Form1窗體將處于非活動(dòng)方式,其標(biāo)題欄將會(huì)不斷閃爍。單擊Form1使它它變?yōu)榛顒?dòng)方式,則窗體的標(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)行其它操作,這對于

55、編制系統(tǒng)口令保護(hù)界面尤為重要。如果你希望當(dāng)前表單系統(tǒng)型表單,需如下定義API函數(shù): Declare Function SetSysModalWindow Lib "User" (ByVal hWnd As Integer) As Integer 然后調(diào)用:oldSysModal = SetSysModalWindow(Form.hWnd) 2.獲取驅(qū)動(dòng)器類型 代碼如后: Declare Function GetDriveType Lib “Kernel" (ByVal nDrive As Integer) As Integer Global Const DRIVE

56、_REMOVEABLE = 2, DRIVE_FIXED = 3 Global Const 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, iNe

57、xtNum, iLastNum as Integer 實(shí)際上只有最后一個(gè)變量被設(shè)為了整型,前兩個(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.ActiveCon

58、trol.SelLength = Len(Screen.ActiveControl.Text) 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)

59、as Boolean FileExist = Iif(Dir(Filename) <> "", 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、

60、VB5.0中實(shí)現(xiàn)字體閃爍效果用Visual Basic我們可設(shè)計(jì)出形形色色符合用戶要求的應(yīng)用程序,它確實(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的Capti

61、on設(shè)置為需閃爍的字體:“江西省黎川縣職業(yè)中專電腦室設(shè)計(jì)”、 Font設(shè)置字體及大小、Backstyle設(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 Tim

62、er1_Timer() Chc Label1,1,4,8 End Sub Chc過程是循環(huán)地改變字體顏色(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=

63、Color1 End If Cont.ForeColor=QBColor(Cont.Tag) End 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)(一般Window

64、s 95和Windows 98中均有此項(xiàng))。 次在VB中建立一個(gè)新窗口,加入多媒體部件Microsoft 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)。 源代碼如下: Opti

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論