MessageBox的使用

一、關於MessageBox
       消息框是個很常用的控件,屬性比較多,本文列出了它的一些常用方法,及指出了它的一些應用場合。
       1.MessageBox("這是一個最簡單的消息框!");
        2.MessageBox("這是一個有標題的消息框!","標題");
        3.MessageBox("這是一個確定 取消的消息框!","標題", MB_OKCANCEL );
       4.MessageBox("這是一個警告的消息框!","標題", MB_ICONEXCLAMATION );
       5.MessageBox("這是一個兩種屬性的消息框!","標題", MB_ICONEXCLAMATION|MB_OKCANCEL );

       6.if(MessageBox("一種常用的應用","標題",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
          return;

附其它常用屬性:

       系統默認圖標,可在消息框上顯示
        X錯誤 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
        ?詢問 MB_ICONQUESTION
        !警告 MB_ICONEXCLAMATION and MB_ICONWARNING
        i信息 MB_ICONASTERISK and MB_ICONINFORMATION

       按鈕的形式
        MB_OK 默認
        MB_OKCANCEL 確定取消
        MB_YESNO 是否
        MB_YESNOCANCEL 是否取消

        返回值
        IDCANCEL 取消被選
        IDNO 否被選
         IDOK 確定被選
        IDYES 是被選

       注意!!!
       以上消息框的用法是在CWnd的子類中的應用,如果不是,則要MessageBox(NULL,"ddd","ddd",MB_OK); 或MessageBox(hWnd,"ddd","ddd",MB_OK); hWnd爲某窗口的句柄,或者直接用AfxMessageBox。

        MessageBox對話框是比較常用的一個信息對話框,其不僅能夠定義顯示的信息內容、信息提示圖標,而且可以定義按鈕組合及對話框的標題,是一個功能齊全的信息對話框信息提示圖標,而且可以定義按鈕組合及對話框的標題,是一個功能齊全的信息對框。
 1、函數原型及參數
 function MessageBox(hWnd: HWND; Text, Caption: PChar; Type: Word): Integer;
 hWnd:對話框父窗口句柄,對話框顯示在Delphi窗體內,可使用窗體的Handle屬性,否則可用0,使其直接作爲桌面窗口的子窗口。
 Text:欲顯示的信息字符串。
 Caption:對話框標題字符串。
 Type:對話框類型常量。
 該函數的返回值爲整數,用於對話框按鈕的識別。
 2、類型常量
 對話框的類型常量可由按鈕組合、缺省按鈕、顯示圖標、運行模式四種常量組合而成。
 (1)按鈕組合常量
 MB_OK = $00000000;         //一個確定按鈕
 MB_OKCANCEL = $00000001;      //一個確定按鈕,一個取消按鈕
 MB_ABORTRETRYIGNORE = $00000002;  //一個異常終止按鈕,一個重試按鈕,一個忽略按鈕
 MB_YESNOCANCEL = $00000003;     //一個是按鈕,一個否按鈕,一個取消按鈕
 MB_YESNO = $00000004;        //一個是按鈕,一個否按鈕
 MB_RETRYCANCEL = $00000005;     //一個重試按鈕,一個取消按鈕
 (2)缺省按鈕常量
 MB_DEFBUTTON1 = $00000000;     //第一個按鈕爲缺省按鈕
 MB_DEFBUTTON2 = $00000100;     //第二個按鈕爲缺省按鈕
 MB_DEFBUTTON3 = $00000200;     //第三個按鈕爲缺省按鈕
 MB_DEFBUTTON4 = $00000300;     //第四個按鈕爲缺省按鈕
 (3)圖標常量
 MB_ICONHAND = $00000010;        //“×”號圖標
 MB_ICONQUESTION = $00000020;      //“?”號圖標
 MB_ICONEXCLAMATION = $00000030;    //“!”號圖標
 MB_ICONASTERISK = $00000040;      //“i”圖標
 MB_USERICON = $00000080;        //用戶圖標
 MB_ICONWARNING = MB_ICONEXCLAMATION;  //“!”號圖標
 MB_ICONERROR = MB_ICONHAND;      //“×”號圖標
 MB_ICONINFORMATION = MB_ICONASTERISK; //“i”圖標
 MB_ICONSTOP = MB_ICONHAND;       //“×”號圖標
 (4)運行模式常量
 MB_APPLMODAL = $00000000;    //應用程序模式,在未結束對話框前也能切換到另一應用程序
 MB_SYSTEMMODAL = $00001000;   //系統模式,必須結束對話框後,才能做其他操作
 MB_TASKMODAL = $00002000;    //任務模式,在未結束對話框前也能切換到另一應用程序
 MB_HELP = $00004000;       //Help Button
 3、函數返回值
 0            //對話框建立失敗
 IDOK = 1        //按確定按鈕
 IDCANCEL = 2      //按取消按鈕
 IDABOUT = 3       //按異常終止按鈕
 IDRETRY = 4       //按重試按鈕
 IDIGNORE = 5      //按忽略按鈕
 IDYES = 6        //按是按鈕
 IDNO = 7        //按否按鈕

二、在MessageBox中顯示變量的值

      CString string;

      string.format("%d%s",m_age, m_address); //將變量組裝到字符串中

       MessageBox(string,"消息框標題",消息框類型);

 

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

【函數】 <整型> MessageBox(<字符串> Text, <字符串> Title, <整型> nType);
【函數說明】 彈出一個消息框。
【語法】
參數:
Text <字符串>,消息框的正文;
Title <字符串>,消息框的標題;
nType <整型>,消息框的類型。
返回值:<整型>,用戶在消息框上點擊關閉時的選擇的按鈕。
【說明】
其中nType對應的對話框如下表所示:
0: 確定
1: 確定,取消
2: 終止,重試,忽略
3: 是,否,取消
4: 是,否
5: 重試,取消
6: 取消,再試一次,繼續(注:Windows NT下不支持)

返回值對應的值如下:
1: 確定
2: 取消
3: 終止
4: 重試
5: 忽略
6: 是
7: 否
10:再試一次

        應用程序中的提示信息處理程序是非常出重要的部分,用戶要知道他輸入的資料到底正不正確

,或者是應用程序有一些提示信息要告訴用戶,都必須通過提示信息處理程序來顯示適當的信息,

讓用戶瞭解下一步該如何配置。提示信息有很多種類,包括警告,錯誤,提示,確認,重試等。不

同種類的提示信息框適合用在各種不同的情況。

  在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也可以點。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章