Posted on 2006-05-12 14:59
semovy 閱讀(4882)
評論(0) 編輯 收藏 所屬分類:
C++ Builder相關
提示信息框(MessageBox)的應用
作者:
?
應用程序中的提示信息處理程序是非常出重要的部分,用戶要知道他輸入的資料到底正不正確
,或者是應用程序有一些提示信息要告訴用戶,都必須通過提示信息處理程序來顯示適當的信息,
讓用戶了解下一步該如何配置。提示信息有很多種類,包括警告,錯誤,提示,確認,重試等。不
同種類的提示信息框適合用在各種不同的情況。
在C++Builder中開發提示信息框只須調用MessageBox這個信息提示框函數就行,下面就是這個
函數說明:
int?__fastcall?MessageBox(const?char?*?Text,//提示信息框的內容
const?char?*?Caption,?//提示信息框的標題
int?Flags);?//提示信息框的類別
參數Flags的值是用來標志提示信息框的類別的,下面是一些常用的類別:
參數值?樣式?意義
MB_ICONWARNING?含圖標、固定按鈕?警告信息框
MB_ICONQUESTION?含圖標、固定按鈕?疑問信息框
MB_IConERROR?含圖標、固定按鈕?錯誤信息框
MB_ICONASTERISK?含圖標、固定按鈕?提示信息框
MB_HELP?不含圖標、可改變按鈕?說明信息框
MB_OK?不含圖標、可改變按鈕?提示信息框
MB_OKCANCEL?不含圖標、可改變按鈕?確認信息框
MB_RETRYCANCEL?不含圖標、可改變按鈕?重試信息框
MB_YESNO?不含圖標、可改變按鈕?是否信息框
MB_YESNOCANCEL?不含圖標、可改變按鈕?是否取消信息框
從上表可以看出來,提示信息框的類別可以分成含圖標和不含圖標,含圖標的意思就是指提示
信息框上會有代表意義的圖形,不過這類型的提示信息框的按鈕都是固定的,都是【確定】按鈕,
不能增加也不能省略;不含圖標的提示信息框,雖然沒有對應的圖形顯示在提示信息框上,可是你
卻可以在這種類型的提示信息框內,加入各種組合的按鈕,用于各種不同的情況。
MessageBox函數會返回一個整數值,這個整數值代表用戶剛剛點擊提示信息框上的哪個按鈕,每個
返回值的代表意義在下表:
返回值?數值?意義
IDOK?1?確定
IDCANCEL?2?取消
IDABORT?3?中斷
IDRETRY?4?重試
IDIGNORE?5?忽略
IDYES?6?是
IDNO?7?否
下面是提示信息框的示范程序:
1.?警告信息框
Application->MessageBox(\\\"警告信息框\\\",\\\"警告信息框\\\",MB_ICONWARNING);
2.疑問信息框
Application->MessageBox(\\\"疑問信息框\\\",\\\"疑問信息框\\\",MB_ICONQUESTION);
3.錯誤提示框
Application->MessageBox(\\\"錯誤信息框\\\",\\\"錯誤信息框\\\",MB_IConERROR);
4.提示信息框
Application->MessageBox(\\\"提示信息框\\\",\\\"提示信息框\\\",MB_ICONASTERISK);
5.說明信息框
Application->MessageBox(\\\"說明信息框\\\",\\\"說明信息框\\\",MB_HELP);
6.提示信息框
Application->MessageBox(\\\"提示信息框\\\",\\\"提示信息框\\\",MB_OK);
7.確認信息框
Application->MessageBox(\\\"確認信息框\\\",\\\"確認信息框\\\",MB_OKCANCEL);
8.重試信息框
Application->MessageBox(\\\"重試信息框\\\",\\\"重試信息框\\\",MB_RETRYCANCEL);
9.是否信息框
Application->MessageBox(\\\"是否信息框\\\",\\\"是否信息框\\\",MB_YESNO);
10.是否取消信息框
Application->MessageBox(\\\"是否取消信息框\\\",\\\"是否取消信息框\\\",MB_YESNOCANCEL);
在C++Builder中,還提供了一個很簡單的信息提示框函數,那就是ShowMessage。這個函數只
有一個字符串參數,你可以把要顯示的字符串放到這個字符串參數里面,ShowMessage就回顯示出
該信息,但是沒有圖標,也沒有按鈕,只有單純的字符串信息而已。
下面是ShowMessage函數的說明:
extern?PACKAGE?void?__fastcall?ShowMessage(const?AnsiString?Msg);
例子:
ShowMessage(\\\"這個就是ShowMessage函數生成的信息提示框!\\\");
Application->MessageBox(\\\"AA\\\",?\\\"BB\\\",?MB_OK?|?MB_ICONSTOP);
或
MessageBox(Application->Handle,\\\"AA\\\",?\\\"BB\\\",?MB_OK?|?MB_ICONSTOP);
這種寫法“級別”最高:如果彈出這樣的對話框,不點掉,Application下所有的Form都
不能“動”的。
MessageBox(Form1->Handle,\\\"AA\\\",?\\\"BB\\\",?MB_OK?|?MB_ICONSTOP);
這種寫法“級別”其次:如果彈出這樣的對話框,不點掉,只有From1不能“動”,其他
Show()的From還可以點。
MessageBox(NULL,\\\"AA\\\",?\\\"BB\\\",?MB_OK?|?MB_ICONSTOP);
這種寫法“級別”最低:如果彈出這樣的對話框,不點掉,From1也能“動”,其他
Show()的From也可以點。