【正文】
=========================================== 39。全屏播放 39。====================================================== Public Function PlayFullScreen() As Boolean Dim RefInt As Long PlayFullScreen = False RefInt = mciSendString(play NOWMUSIC fullscreen, vbNull, 0, 0) If RefInt = 0 Then PlayFullScreen = True End Function39。===================================================== 39。設(shè)置聲音大小 39。===================================================== Public Function SetVolume(Volume As Long) As Boolean Dim RefInt As Long SetVolume = False RefInt = mciSendString(setaudio NOWMUSIC volume to amp。 Volume, vbNull, 0, 0) If RefInt = 0 Then SetVolume = True End Function 39。===================================================== 39。設(shè)置播放速度 39。===================================================== Public Function SetSpeed(Speed As Long) As Boolean Dim RefInt As Long SetSpeed = False RefInt = mciSendString(set NOWMUSIC speed amp。 Speed, vbNull, 0, 0) If RefInt = 0 Then SetSpeed = True End Function 39。==================================================== 39。靜音True為靜音,F(xiàn)ALSE為取消靜音 39。==================================================== Public Function SetAudioOnOff(AudioOff As Boolean) As Boolean Dim RefInt As Long Dim OnOff As String SetAudioOff = False If AudioOff Then OnOff = off Else OnOff = on RefInt = mciSendString(setaudio NOWMUSIC amp。 OnOff, vbNull, 0, 0) If RefInt = 0 Then SetAudioOff = True End Function 39。==================================================== 39。是否有畫(huà)面True為有,F(xiàn)ALSE為取消 39。==================================================== Public Function SetWindowShow(WindowOff As Boolean) As Boolean Dim RefInt As Long Dim OnOff As String SetWindowShow = False If WindowOff Then OnOff = show Else OnOff = hide RefInt = mciSendString(window NOWMUSIC state amp。 OnOff, vbNull, 0, 0) If RefInt = 0 Then SetWindowShow = True End Function 39。==================================================== 39。獲得當(dāng)前媒體的狀態(tài)是不是在播放 39。==================================================== Public Function IsPlaying() As Boolean Dim sl As String * 255 mciSendString status NOWMUSIC mode, sl, Len(sl), 0 If Left(sl, 7) = playing Or Left(sl, 2) = 播放 Then IsPlaying = True Else IsPlaying = False End If End Function 39。==================================================== 39。獲得播放窗口的handle 39。==================================================== Public Function GetWindowHandle() As Long Dim RefStr As String * 160 mciSendString status NOWMUSIC window handle, RefStr, 80, 0 GetWindowHandle = Val(RefStr) End Function 39。==================================================== 39。獲取DeviceID 39。==================================================== Public Function GetDeviceID() As Long GetDeviceID = mciGetDeviceID(NOWMUSIC) End FunctionTextBox使用技巧TextBox使用技巧 在使用Visual Basic開(kāi)發(fā)應(yīng)用程序時(shí),TextBox控件是最常用的(特別 對(duì)于數(shù)據(jù)庫(kù)程序),以下是筆者在開(kāi)發(fā)應(yīng)用程序時(shí)的一些技巧,希望對(duì)愛(ài)好 VB的朋友有幫助。 限制TextBox只能輸入數(shù)字。 我們只需要判斷KeyAscii是否在4857之間就可以達(dá)到目的,但我們還會(huì) 要用到退格鍵的,所以必須加上KeyAscii 8?! rivate Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii 8 And KeyAscii 48 Or KeyAscii 57 Then Beep KeyAscii = 0 End If End Sub 自動(dòng)將輸入的英文轉(zhuǎn)為小寫(xiě)/大寫(xiě)?! ∪绻贙eyPress事件里使用Ucase$和Lcase$,那么當(dāng)你輸入abc時(shí),Text Box里的結(jié)果會(huì)是CBA(具體原因這里不多說(shuō)),我們只好判斷它的KeyAscii, 剛好大寫(xiě)與小寫(xiě)之間是相差32,所以……看下面的程序?! ?9。大寫(xiě)轉(zhuǎn)小寫(xiě) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 65 And KeyAscii = 90 Then KeyAscii = KeyAscii + 32 End If End Sub 39。小寫(xiě)轉(zhuǎn)大寫(xiě) Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 97 And KeyAscii = 122 Then KeyAscii = KeyAscii 32 End If End Sub 使兩個(gè)TextBox同步的方法?! ∵@種方法怎么解釋呢?第二個(gè)等于第一個(gè)就行了:)?! rivate Sub Text1_KeyPress(KeyAscii As Integer) Text2=Text1 End Sub 按下 Enter 鍵之后,光標(biāo)自動(dòng)移到下一個(gè)控件?! ‘?dāng)KeyAscii為13(回車(chē))時(shí),Send一個(gè)Tab鍵給它就行了?! rivate Sub Text1_KeyPress (KeyAscii As Integer) If KeyAscii = 13 Then SendKeys “{tab}” KeyAscii = 0 End If End Sub 當(dāng)光標(biāo)移到TextBox時(shí)自動(dòng)選定其中的整串文字?! ‘?dāng)對(duì)象得到焦點(diǎn)時(shí),從最前面開(kāi)始選取(SelStart=0),選取的 長(zhǎng)度為文本長(zhǎng)度(Len(Text1))?! rivate Sub Text1_GotFocus() = 0 = Len(Text1) End Sub 當(dāng)光標(biāo)移到TextBox時(shí)改變其文字顏色。 當(dāng)TextBox得到焦點(diǎn)時(shí)(GotFocus)改變文本顏色,失去焦點(diǎn)時(shí)( LostFocus)將還原文本顏色,F(xiàn)oreColor是設(shè)置文本的前景色?! ?9。當(dāng)光標(biāo)移到TextBox時(shí)文字設(shè)置為紅色 Private Sub Text1_GotFocus() = vbRed End Sub 39。當(dāng)光標(biāo)移出TextBox時(shí)文字設(shè)置為黑色 Private Sub Text1_LostFocus() = vbBlack End Sub 的背景色。VB2005實(shí)現(xiàn)新一代控制臺(tái)應(yīng)用程序開(kāi)發(fā)計(jì)算機(jī)用戶(hù)經(jīng)常把控制臺(tái)應(yīng)用程序作為一種“遺物”來(lái)看待,但是它們?nèi)匀贿€作為系統(tǒng)管理員的非常喜歡的一部分,而且還是高手用戶(hù)的“工具箱”之一。另外,當(dāng)你需要大量重復(fù)的腳本操作,當(dāng)然還有可能的更復(fù)雜的操作時(shí),都會(huì)用到這種控制臺(tái)應(yīng)用程序?! ≡赩isual Basic的早期版本中基本沒(méi)有為創(chuàng)建控制臺(tái)應(yīng)用程序提供多大支持。而且,盡管VB 6及其早期版本能夠創(chuàng)建控制臺(tái)應(yīng)用程序;但是,這不是一種簡(jiǎn)單的或直接的過(guò)程。在VB 6中創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序必須進(jìn)行Win32 API調(diào)用;即使如此,你也不能控制光標(biāo)位置或文本的顏色,而且在很大程度上僅能被限制進(jìn)行從左到右和從上到下的編碼。 如今。它不僅在“New Project...”對(duì)話(huà)框中提供一種控制臺(tái)應(yīng)用程序工程,而且最重要的是,它還提供了一個(gè)控制臺(tái)(Console)對(duì)象。因此,你不必再“困擾”于 Win32 API了。然而,你還是被限于“從左到右和從上到下”的編碼。但是,還有其它許多更高級(jí)的特征?! ∫?、在VB 2005中的新型控制臺(tái)應(yīng)用程序特征 ,如今的VB 2005又為控制臺(tái)應(yīng)用程序增加了許多優(yōu)秀的特征。下面列出的僅是VB 2005中更為激動(dòng)人心的功能中的一部分: ◆清除控制臺(tái)窗口 ◆得到并設(shè)定光標(biāo)位置和大小 ◆得到并設(shè)定窗口高度和寬度 ◆得到并設(shè)定前景和背景顏色 ◆選擇并在控制臺(tái)窗口內(nèi)移動(dòng)部分文本 本文中的其它部分將詳細(xì)地分析一個(gè)控制臺(tái)應(yīng)用程序的創(chuàng)建過(guò)程,以便展示上面這些特征的使用?! 《?、實(shí)例應(yīng)用程序—DirCopy 我經(jīng)常從控制臺(tái)窗口中實(shí)現(xiàn)把文件從一個(gè)目錄復(fù)制到另一個(gè)目錄。當(dāng)我復(fù)制一個(gè)含有大量文件的目錄時(shí),我經(jīng)常希望得到一些提示—復(fù)制進(jìn)程完成的怎么樣了?復(fù)制快結(jié)束了還是再等待一會(huì)?為了實(shí)現(xiàn)這一問(wèn)題,我構(gòu)建了一個(gè)控制臺(tái)應(yīng)用程序,它能夠在控制臺(tái)窗口內(nèi)顯示一個(gè)進(jìn)度條來(lái)以圖形化顯示復(fù)制進(jìn)度?! ∪?、定義功能 為了簡(jiǎn)化本文中的演示目的,DirCopy將使用兩個(gè)命令行參數(shù):一個(gè)源目錄和一個(gè)目的目錄。然后,它把所有文件從源目錄復(fù)制到目的目錄。注意,這個(gè)簡(jiǎn)單的程序無(wú)法復(fù)制源目錄下的子目錄?! ∈紫?,我編寫(xiě)一個(gè)DisplayUsage子程序。如果使用太多或太少的命令行參數(shù)調(diào)用DirCopy,那么它將調(diào)用DisplayUsage,然后結(jié)束?! ∠铝惺荄isplayUsage子 程序的代碼: Private Sub DisplayUsage() Dim originalForegroundColor As ConsoleColor = () = (DirCopy ) (Written by Josh Fitzgerald) (New String(, )) (DirCopy will copy all of the files from the source folder to the) (destination folder. While the files are copying, a progress bar) (will display the percent plete.) () (If a directory name contains spaces, enclose it in double q