全国计算机等级考试二级教程第七章,2012年全国计算机等级考试二级VB入门教程第七章(1)...
上一章里,我們討論的VB的輸人機制,這次我們來集中討論VB中信息的輸出。
輸入和輸出是不可分割的,人們輸入的最終目的是希望計算機作出反應,任何一個程序都不可能避開這個問題,所以就算要完成一個最基本的程序,也要有輸出的部分,復雜的程序更是如此。
在輸入的一章里,我們學習的第一個輸入方法是InputBox,相應的在輸出中我們第一個要接觸的是MsgBox(Message Box),和InputBox相似,MsgBox也是簡化了的窗體,可以以函數的形式返回操作。它的基本語法是:
MsgBox "顯示內容",按鈕值,"標題"
通過這個函數可以產生一個標準的Windows消息框,象我們平時經常接觸的“Yes/No”、“OK/Cancel”,“Retry/Abort/Ignore”等等,這些都是在按鈕值中設定的,按鈕值如下:數值含義
0OK
1OK和Cancel
2Abort、Retry和Ignore
3Yes、No和Cancel
4Yes和No
5Retry和Cancel
并且不同的消息可以搭配不同的圖標,比如幫助文件用問號,一般提示用一個圈里一個I等等,它們也是按鈕值的一部分:數值含義
16表示危險
32表示問號
48表示警告
64表示信息
但是如何既顯示按鈕也顯示相應的圖標呢,請看一會兒下面的例子。前面說過,MsgBox是函數,那么它就會有返回值,當你按下某個按鈕就會返回一個數值,以便對用戶不同動作的捕捉,返回值如下:數值含義
1OK
2Cancel
3Abort
4Retry
5Ignore
6Yes
7No
說了這么多,可能你已經不知所措了,不過看過下面的例子后,相信一切都會迎刃而解。
首先建立一個新項目文件,并添加以下對象(見圖7-1)――一個Button(Command1),兩個ComboBox(Combo1和Combo2),不要對其屬性做更多的修改,只需把Command1的Caption改為“Click Me”。這個程序的目的是自由組合上面的按鈕值,以顯示各種消息框,并且返回按下的按鈕,Combo1和Combo2分別用來選擇按鈕值,首先在Form_Load中初始化程序:
Private Sub Form_Load()
Combo1.AddItem "OK"
Combo1.AddItem "OK and Cancel"
Combo1.AddItem "Abort,Retry and Ignore"
Combo1.AddItem "Yes,No,Cancel"
Combo1.AddItem "Yes,No"
Combo1.AddItem "Retry,Cancel"
Combo1.ListIndex = 0
Combo2.AddItem "危險"
Combo2.AddItem "詢問"
Combo2.AddItem "警告"
Combo2.AddItem "信息"
Combo2.ListIndex = 0
End Sub來源:-計算機二級考試
ComboBox的用法已經在上一章中討論過,在此不再贅述,ListIndex屬性用來把第一個元素放在選擇位置。
但是如何顯示需要的按鈕和圖標呢?很簡單,只需把它們相加,比如說要顯示OK、Cancel按鈕和警告的圖標,只需把1和48相加,得到49即可,于是我們在Command1中填寫這樣一行:
Private Sub Command1_Click()
message = MsgBox("顯示" & Combo1.List(Combo1.ListIndex) & "和" & Combo2.List(Combo2.ListIndex), Combo1.ListIndex + (Combo2.ListIndex + 1) * 16, "消息演示")
End Sub
因為圖標值是從16開始的所以要把Combo2的ListIndex加1再乘以16。
小知識:按鈕值并非簡單的相加
按鈕值并非簡單的相加,我們知道,在計算機里最終的語言是機器語言,而機器語言是以0和1的二進制表示的,在這里用到的實際上不是相加,而是邏輯操作符“OR”,你知道OR和AND是怎樣工作的嗎?正如你所知,True And False得到False,而True Or False得到True,這是怎么形成的呢?我們有時也用0代表False,用1或-1代表True(其實,只要非零都可以代表True),而0和1在二進制中還是本身,于是True、False的運算就變成的0 和1的運算,我們可以把And叫做補0運算,把Or叫做補1運算,當用And處理兩個二進制數的時候,它們逐位比較,如果相同的位上都是0或都是1則沒有變化,而如果一位上是0,另一位上是1,最后結果上相應的位上就變成0。比如1010(十進制中10)And 1101(十進制中13),最后就得1000(十進制中8),相同的Or亦是如此,只不過在不同的地方補1。在位數不同時,前面補0,你可以在VB中試試看。但為什么要講這些呢,原因是我不想讓大家真的以為這個例子中就是相加,只不過碰巧它們的0和1處在不同的位置上,并且這個小知識在今后的位圖操作和API操作中很有用處。
下面在來判斷用戶按下的按鈕。
Private Sub Command1_Click()
message = MsgBox("顯示" & Combo1.List(Combo1.ListIndex) & "和" & Combo2.List(Combo2.ListIndex), Combo1.ListIndex + (Combo2.ListIndex + 1) * 16, "消息演示")
Select Case message
Case 1
MsgBox "你按下了OK鈕"
Case 2
MsgBox "你按下了Cancel按鈕"
Case 3
MsgBox "你按下了Abort按鈕"
Case 4
MsgBox "你按下了Retry按鈕"
Case 5
MsgBox "你按下了Ignore按鈕"
Case 6
MsgBox "你按下了Yes按鈕"
Case 7
MsgBox "你按下了No按鈕"
End Select
End Sub
運行程序,結果如圖7-2,7-3。
總結
以上是生活随笔為你收集整理的全国计算机等级考试二级教程第七章,2012年全国计算机等级考试二级VB入门教程第七章(1)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中职学校计算机教学中论文,中职学校计算机
- 下一篇: 清华计算机学院吴建平,吴建平