設(shè)計(jì)開(kāi)發(fā)桌面應(yīng)用程序,可以選擇的語(yǔ)言有很多,如:Visual Basic、Dephi、Visual C++ ,但如果要把程序的界面做得既漂亮又好看,使用以上的開(kāi)發(fā)語(yǔ)言并不是一件容易的事情??墒?,一些商業(yè)應(yīng)用軟件的界面做得卻非常漂亮,那些控件的顏色搭配、外觀、實(shí)用性等,都做得非常出色。作為一名程序員也希望能做出如此漂亮的程序界面。為此,本文討論用網(wǎng)頁(yè)制作程序界面的思路和方法。
一、用網(wǎng)頁(yè)制作程序界面的思路
程序設(shè)計(jì)員要開(kāi)發(fā)一套界面漂亮的控件庫(kù),不是一件容易的事情,如果開(kāi)發(fā)一個(gè)軟件,希望把軟件的界面做得漂亮,但又沒(méi)有多余的時(shí)間去編寫(xiě)界面控件庫(kù),那么,只要對(duì)網(wǎng)頁(yè)制作中的HTML、CSS、JavaScript知識(shí)熟練掌握,就可以試用網(wǎng)頁(yè)去做應(yīng)用程序的界面。
Web2.0已經(jīng)成為當(dāng)今網(wǎng)絡(luò)的主流,用VB做出來(lái)的界面很丑,而用網(wǎng)頁(yè)做出來(lái)的界面很漂亮,網(wǎng)頁(yè)通過(guò)強(qiáng)大的CSS樣式表可以把網(wǎng)頁(yè)中的界面元素控制得非常好。如果能用CSS樣式表去控制VB程序的界面,那程序的界面就容易美化了??墒?,CSS只能控制網(wǎng)頁(yè),不能控制桌面應(yīng)用程序。
經(jīng)筆者反復(fù)研究發(fā)現(xiàn),用CSS控制程序界面的方法,就是讓程序的主界面變成網(wǎng)頁(yè),然后再用網(wǎng)頁(yè)元素去美化它,但這樣就需要解決以下幾個(gè)問(wèn)題。
問(wèn)題1:應(yīng)用程序跟網(wǎng)頁(yè)是分離的兩個(gè)實(shí)體,如果要用網(wǎng)頁(yè)去制作程序的界面,應(yīng)用程序必須能顯示網(wǎng)頁(yè)。
問(wèn)題2:應(yīng)用程序必須能捕獲網(wǎng)頁(yè)中的相關(guān)事件。
問(wèn)題3:應(yīng)用程序必須能向網(wǎng)頁(yè)界面發(fā)送數(shù)據(jù)。
如果解決上面問(wèn)題,就能實(shí)現(xiàn)用網(wǎng)頁(yè)制作程序界面。
二、用網(wǎng)頁(yè)制作程序界面的方法
1.問(wèn)題1的解決方法
在Visual Basic中,我們可以通過(guò)WebBrowser控件去顯示網(wǎng)頁(yè),引用該部件后,只要向Naviaget方法傳遞網(wǎng)頁(yè)界面的路徑參數(shù)即可(可以是URL或者絕對(duì)路徑)。
2.問(wèn)題2的解決方法
要讓VB捕獲網(wǎng)頁(yè)中的事件,我們可以讓網(wǎng)頁(yè)發(fā)生了某一事件后,主動(dòng)去通知應(yīng)用程序。具體的做法如下:
在VB窗口中加入如下代碼去接收網(wǎng)頁(yè)發(fā)出的所有
事件:
Private Sub WebBrowser1_BeforeNavigate2()
Dim Ev As String
Dim i As Integer
If UCase$(Left$(URL, 6)) = \"EVENT:\" Then
Ev = UCase$(Mid$(URL, 7))
Select Case Ev
Case \"TOP\"
Call topRecord
Case \"NEXT\"
Call nextRecord
Case \"COMPLETE\"
Call completeTest
End
End Select
Cancel = True
End If
End Sub
3.問(wèn)題3的解決方法
在網(wǎng)頁(yè)中加入如下代碼,用于向應(yīng)用程序發(fā)出事件:
nbsp;
nbsp;