消息框是個很常用的控件,屬性比較多,本文列出了它的一些常用方法,及指出了它的一些應用場合。
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也可以點。
轉自:http://hi.baidu.com/%BD%D9jie%B8%F6%C9%AB/blog/item/470cb98eecd2e8e3f11f3603.html