這些日子趁着上自習,把VB中我還沒有涉及到的領域好好研究一下。看到繪圖部分,想想如果用它來激發學生對VB的興趣,應該效果不錯。想當初咱玩GW-Basic的時候,天天寫程序就是“擺星星”,擺個正三角,倒三角,四邊形等等,樂此不疲。都快30歲的人了,那種癡迷的勁頭比今天學生玩那些弱智小遊戲有過之而無不及。現在的vb繪圖能力比GW-Basic強大多了,正好我們的教材最後一章也是講VB繪圖,只不過因爲九年級課時太少,從來沒講過。如果把這一章提到前面來講,應該是個不錯的主意。
VB繪圖中主要使用 Line() 和 Circle() 兩個函數,用法很簡單。畫個線條、矩形、橢圓之類的學生可能興趣不會保持太久。如果指導學生來給自己開發一個小軟件,那是很有成就感的啊。我們就來開發一個簡單的星爆屏保,也可以在此基礎上改進一下,改成矩形變換、小球追趕等等。
編譯一下,將編譯成的Projedt1.exe 改名爲“我的屏保.scr”,並複製到 c:/windows/system32 目錄下,在“顯示”窗口的“屏幕保護程序中就可以找到它了,選中它應用一下就OK了,如圖:
'新建一個VB程序,將form1的BorderStyle(邊框風格)屬性設爲0,即無邊框。
'因爲對於Form和Textbox等控件,其邊框風格在運行時是隻讀的,所以不能用代碼修改,用API可以。
'再向窗體上添加一個時鐘控件。其他無需任何改動,複製下面的代碼到代碼編輯窗口即可
Private Sub Form _Resize()
Me.BorderStyle = 0 '此處應在窗體屬性中設置,運行時爲只讀
Me.BackColor = vbBlack
Me.Top = 0
Me.Left = 0
Me.Height = Screen.Height '將窗體充滿屏幕
Me.Width = Screen.Width
Timer1.Interval = 1000 '時鐘間隔爲1秒
End Sub
Private Sub Timer1_Timer()
Call star
End Sub
Private Sub star()
Dim i As Integer
Dim ccode As Integer
Dim pointx As Single '定義中心點x,y
Dim pointy As Single
Dim col As Single '定義隨機點x,y
Dim row As Single
Randomize '置隨機數種子
Cls
Scale (0, 0)-(100, 100) '重定義屏幕座標系統
pointx = 100 * Rnd
pointy = 100 * Rnd
For i = 1 To 100
col = 100 * Rnd
row = 100 * Rnd
ccode = 15 * Rnd '取隨機顏色
If ccode = 0 Then ccode = 15
Line (pointx, pointy)-(col, row), QBColor(ccode) '用隨機色畫線
Next
Me.FillColor = vbWhite '以下在中心點畫一個白色實心小圓
Me.FillStyle = 0
Me.Circle (pointx, pointy), 0.2, QBColor(15)
End Sub
Private Sub Form _KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Or KeyCode = 13 Then '當按下Esc鍵、或回車鍵時退出屏保
Call Form _DblClick
End If
End Sub
Private Sub Form _DblClick()
Me.BorderStyle = 0 '當雙擊屏幕時退出屏保
Timer1.Interval = 0
End
End Sub
'因爲對於Form和Textbox等控件,其邊框風格在運行時是隻讀的,所以不能用代碼修改,用API可以。
'再向窗體上添加一個時鐘控件。其他無需任何改動,複製下面的代碼到代碼編輯窗口即可
Private Sub Form _Resize()
Me.BorderStyle = 0 '此處應在窗體屬性中設置,運行時爲只讀
Me.BackColor = vbBlack
Me.Top = 0
Me.Left = 0
Me.Height = Screen.Height '將窗體充滿屏幕
Me.Width = Screen.Width
Timer1.Interval = 1000 '時鐘間隔爲1秒
End Sub
Private Sub Timer1_Timer()
Call star
End Sub
Private Sub star()
Dim i As Integer
Dim ccode As Integer
Dim pointx As Single '定義中心點x,y
Dim pointy As Single
Dim col As Single '定義隨機點x,y
Dim row As Single
Randomize '置隨機數種子
Cls
Scale (0, 0)-(100, 100) '重定義屏幕座標系統
pointx = 100 * Rnd
pointy = 100 * Rnd
For i = 1 To 100
col = 100 * Rnd
row = 100 * Rnd
ccode = 15 * Rnd '取隨機顏色
If ccode = 0 Then ccode = 15
Line (pointx, pointy)-(col, row), QBColor(ccode) '用隨機色畫線
Next
Me.FillColor = vbWhite '以下在中心點畫一個白色實心小圓
Me.FillStyle = 0
Me.Circle (pointx, pointy), 0.2, QBColor(15)
End Sub
Private Sub Form _KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 27 Or KeyCode = 13 Then '當按下Esc鍵、或回車鍵時退出屏保
Call Form _DblClick
End If
End Sub
Private Sub Form _DblClick()
Me.BorderStyle = 0 '當雙擊屏幕時退出屏保
Timer1.Interval = 0
End
End Sub
下載:
http://good.gd/774857.htm