【正文】
Source = stereo End Select SetAudioSource = False RefInt = mciSendString(setaudio NOWMUSIC source to amp。====================================================== 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。設(shè)置聲音大小 39。 Volume, vbNull, 0, 0) If RefInt = 0 Then SetVolume = True End Function 39。設(shè)置播放速度 39。 Speed, vbNull, 0, 0) If RefInt = 0 Then SetSpeed = True End Function 39。靜音True為靜音,F(xiàn)ALSE為取消靜音 39。 OnOff, vbNull, 0, 0) If RefInt = 0 Then SetAudioOff = True End Function 39。是否有畫(huà)面True為有,F(xiàn)ALSE為取消 39。 OnOff, vbNull, 0, 0) If RefInt = 0 Then SetWindowShow = True End Function 39。獲得當(dāng)前媒體的狀態(tài)是不是在播放 39。==================================================== 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。獲取DeviceID 39。 限制TextBox只能輸入數(shù)字。 Private 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ě)?! ?9。小寫(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同步的方法?! rivate Sub Text1_KeyPress(KeyAscii As Integer) Text2=Text1 End Sub 按下 Enter 鍵之后,光標(biāo)自動(dòng)移到下一個(gè)控件?! 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)選定其中的整串文字?! rivate Sub Text1_GotFocus() = 0 = Len(Text1) End Sub 當(dāng)光標(biāo)移到TextBox時(shí)改變其文字顏色?! ?9。當(dāng)光標(biāo)移出TextBox時(shí)文字設(shè)置為黑色 Private Sub Text1_LostFocus() = vbBlack End Sub 的背景色。另外,當(dāng)你需要大量重復(fù)的腳本操作,當(dāng)然還有可能的更復(fù)雜的操作時(shí),都會(huì)用到這種控制臺(tái)應(yīng)用程序。而且,盡管VB 6及其早期版本能夠創(chuàng)建控制臺(tái)應(yīng)用程序;但是,這不是一種簡(jiǎn)單的或直接的過(guò)程。 如今。因此,你不必再“困擾”于 Win32 API了。但是,還有其它許多更高級(jí)的特征。下面列出的僅是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ò)程,以便展示上面這些特征的使用。當(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)度。然后,它把所有文件從源目錄復(fù)制到目的目錄?! ∈紫?,我編寫(xiě)一個(gè)DisplayUsage子程序?! ∠铝惺荄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 quotes.) () (Example : ) = (DirCopy C:\MyFolder C:\MyNewFolder) = () (Example : ) = (DirCopy C:\My Folder C:\My New Folder) = originalForegroundColor End Sub在子程序的最后。在實(shí)際運(yùn)行DirCopy之前,我想確保DirCopy總是讓控制臺(tái)顯示相同的顏色。這是在VB 2005中的新方法之一;這樣以來(lái),程序員可以很容易地?fù)碛幸粋€(gè)干凈的控制臺(tái)窗口。然后,我使用Writeline和Write方法把幾行文本輸出到屏幕上。我想使得這些示例突出一些;因此,我把ForegroundColor設(shè)置為品紅色。數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)一直在不斷進(jìn)步,而這三種接口的每一種都分別代表了該技術(shù)的不同發(fā)展階段。正因如此,越來(lái)越多的人在用VB開(kāi)發(fā)數(shù)據(jù)庫(kù)軟件時(shí)使用ADO作為數(shù)據(jù)訪問(wèn)接口。在這種開(kāi)發(fā)過(guò)程中,我們有時(shí)需要面對(duì)這樣一個(gè)問(wèn)題:如何讓用戶在程序運(yùn)行過(guò)程中動(dòng)態(tài)地建立自己所需的數(shù)據(jù)庫(kù)和數(shù)據(jù)表以提高程序的靈活性呢?在程序運(yùn)行過(guò)程中建立自己所需的數(shù)據(jù)庫(kù)和數(shù)據(jù)表,其本質(zhì)就是用代碼(或者說(shuō)通過(guò)編程)來(lái)建立數(shù)據(jù)庫(kù)和數(shù)據(jù)表。那么在VB數(shù)據(jù)庫(kù)編程中又是怎樣來(lái)操作的呢?在VB數(shù)據(jù)庫(kù)編程中,如果使用DAO作為數(shù)據(jù)庫(kù)訪問(wèn)接口技術(shù),則可以用CreateDatabase結(jié)合CreateTableDef方法來(lái)實(shí)現(xiàn),目前已有不少書(shū)和雜志都講到了這種方法,本文就不再講述了;但你如果使用的是最新的數(shù)據(jù)庫(kù)訪問(wèn)接口技術(shù)ADO,你卻發(fā)現(xiàn)目前的書(shū)和雜志上沒(méi)有文章講到如何用代碼來(lái)建立數(shù)據(jù)庫(kù)和數(shù)據(jù)表的方法,可有時(shí)我們非常需要用到這種方法,下面我們就來(lái)解決這個(gè)問(wèn)題。在VB6中,使用ADO開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),我們要引用對(duì)象庫(kù)Microsoft ActiveX Data Objects Library, 這個(gè)東西的簡(jiǎn)稱就是ADO,它是VB6數(shù)據(jù)庫(kù)最核心的對(duì)象群,也是VB數(shù)據(jù)庫(kù)開(kāi)發(fā)人員經(jīng)常所引用的對(duì)象庫(kù),在VB6中你可以看到它的各種版本,很多人對(duì)它已經(jīng)很熟悉,在此我們不再詳細(xì)介紹。ADOX是對(duì) ADO 對(duì)象和編程模型的擴(kuò)展,它將 ADO 擴(kuò)展為包括創(chuàng)建、修改和刪除模式對(duì)象,如表格和過(guò)程。ADOX的對(duì)象如下表所示: 對(duì)象 說(shuō)明 Catalog 包含描述數(shù)據(jù)源模式目錄的集合?! roup Index Key Procedure 表示存儲(chǔ)的過(guò)程。 表示數(shù)據(jù)庫(kù)表,包括列、索引和關(guān)鍵字。 表示在安全數(shù)據(jù)庫(kù)內(nèi)具有訪問(wèn)權(quán)限的用戶帳號(hào)。 表示記錄或虛擬表的過(guò)濾集。有關(guān) ADOX 的詳細(xì)信息,請(qǐng)?jiān)?。例如:,數(shù)據(jù)庫(kù)中有一個(gè)名為工資表數(shù)據(jù)表,該數(shù)據(jù)表的字段有:編號(hào)、姓名、基本工資、津貼、應(yīng)發(fā)工資、扣款、實(shí)發(fā)工資等,這個(gè)表中已經(jīng)有很多的記錄。我們用下列程序就可以實(shí)現(xiàn): (事先在窗體中添加一個(gè)文本框Text1和一個(gè)命令按鈕Command1) Dim conn As New Dim rs As New Dim mand As New Private Sub Command1_Click() Dim bm As String Dim sql As String If Then bm = Trim() sql= Select 編號(hào),姓名,實(shí)發(fā)工資 Into + bm + From 工資表 Where 實(shí)發(fā)工資2000 Set = conn = sql Else MsgBox 你必須輸入一個(gè)名字 End If Private Sub Form_Load() Dim str As String str = If Right(str, 1) \ Then str = str + \ End If pstr = Provider=。 Persist Security Info=False。 Data Source= amp。 pstr = adUseClient 工資表, conn, adOpenKeyset, adLockPessimistic Set = rs End Sub 當(dāng)然,我們還可以把程序設(shè)計(jì)得更好,比如:讓用戶先在窗口中任意選擇所需的字段和一些條件,然后再組合生成一個(gè)新表。 4: 建立新的數(shù)據(jù)庫(kù)和表前面講到的方法有一定的局限性,它不能讓用戶產(chǎn)生自己所需的數(shù)據(jù)庫(kù)文件,即使能產(chǎn)生數(shù)據(jù)表也只能在原有表的基礎(chǔ)上生成。為此,我們應(yīng)該引用對(duì)象庫(kù)Microsoft ActiveX Data Objects Library和Microsoft ADO Ext . For DDL Security我們不妨用一個(gè)實(shí)例來(lái)說(shuō)明具體的操作過(guò)程和方法。然后在數(shù)據(jù)庫(kù)中建立一個(gè)名為MyTable的數(shù)據(jù)表,數(shù)據(jù)表中有三個(gè)字段,它們分別是:編號(hào)(整數(shù)型)、 姓名(字符型,寬度為8)、住址 (字符型,寬度為50),接著在數(shù)據(jù)表中添加一條記錄,最后在DataGrid控件中把記錄的內(nèi)容顯示出來(lái),并且讓用戶在DataGrid控件中任意修改、添加記錄。接著定義三個(gè)窗體級(jí)的對(duì)象變量和一個(gè)窗體級(jí)的字符串變量,它們的具體定義是: Dim cat As New 39。定義該變量是為了后面的書(shū)寫(xiě)方便 為了更靈活地創(chuàng)建數(shù)據(jù)庫(kù),我們可以在窗體中加入一個(gè)通用對(duì)話框、一個(gè)DataGrid控件,三個(gè)命令按鈕,它們的標(biāo)題分別是:創(chuàng)建數(shù)據(jù)庫(kù)和表、查看、更新。 創(chuàng)建數(shù)據(jù)庫(kù)和表命令按鈕對(duì)應(yīng)的代碼是: Private Sub Command1_Click() Dim fm As String 39。 39。 Data Source= amp。創(chuàng)建數(shù)據(jù)庫(kù) Dim tbl As New Table = pstr = MyTable 39。表的第一個(gè)字段 姓名, adVarWChar, 8 39。表的第三個(gè)字段 tbl 39。往表中添加新記錄 (0).Value = 9801 (1).Value = 孫悟空 (2).Value = 廣州市花果山 End Sub上面程序中有一個(gè)需要說(shuō)明的地方,這就是語(yǔ)句:pstr = Provider=。你不能把這里的改為,否則程序不能正常運(yùn)行;在VB6中, Jet OLEDB驅(qū)動(dòng)程序?qū)?yīng)的是Access97數(shù)據(jù)庫(kù)?! ≡诔绦蜻\(yùn)行時(shí)只要用戶單擊該命令按鈕就可以創(chuàng)建自己所需的數(shù)據(jù)庫(kù)。這樣,用戶就可以自主地決定數(shù)據(jù)庫(kù)的所有內(nèi)容了,程序的靈活性也就大大提高了。 這種方法使用的Microsoft Jet ,因此,使用這種方法建立的數(shù)據(jù)庫(kù)文件和數(shù)據(jù)表可以直接使用Access2000打開(kāi)。VB6實(shí)現(xiàn)MUI程序方法本文將為大家詳細(xì)講述的是VB6實(shí)現(xiàn)MUI程序方法,希望本文能給大家的日常開(kāi)發(fā)工作帶來(lái)一些啟示。實(shí)質(zhì)就是實(shí)現(xiàn)一個(gè)VB6的MUI程序.這個(gè)需要的困難在于VB6顯示文本的標(biāo)準(zhǔn)控件(Label,Textbox等)不支持Unicode?! ?)