很多次使用彈出窗口作為提示的窗口之用,但是還真的沒(méi)有認(rèn)真的去研究一下,今天寫(xiě)程序的時(shí)候,希望不僅提示用戶(hù)話(huà),還加上一個(gè)警告的小窗口,順便也研究一下如何去使用,好啦,現(xiàn)在開(kāi)始吧。
VC函數(shù)原型:
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
VC函數(shù)參數(shù)說(shuō)明:
hWnd:標(biāo)識(shí)將被創(chuàng)建的消息框的擁有窗口。如果此參數(shù)為NULL,則消息框沒(méi)有擁有窗口。
lpText:指向一個(gè)以NULL結(jié)尾的、含有將被顯示的消息的字符串的指針。
lpCaption:指向一個(gè)以NULL結(jié)尾的、用于對(duì)話(huà)框標(biāo)題的字符串的指針。
uType:指定一個(gè)決定對(duì)話(huà)框的內(nèi)容和行為的位標(biāo)志集。此參數(shù)可以為下列標(biāo)志組中標(biāo)志的組合。
指定下列標(biāo)志中的一個(gè)來(lái)顯示消息框中的按鈕,標(biāo)志的含義如下。
MB_ABORTRETRYIGNORE:消息框含有三個(gè)按鈕:Abort,Retry和Ignore。
MB_CANCELTRYCONTINUE:Microsoft Windows 2000/XP平臺(tái)下所使用的提示,有三個(gè)按鈕Cancel, Try Again, Continue.這個(gè)按鈕 主要是用來(lái)代替MB_ABORTRETRYIGNORE。
MB_HELP:把一個(gè)Help按鈕增加到消息框。選擇Help按鈕或按F1產(chǎn)生一個(gè)Help事件。
MB_OK:消息框含有一個(gè)按鈕:OK。這是缺省值。
MB_OKCANCEL:消息框含有兩個(gè)按鈕:OK和Cancel。
MB_RETRYCANCEL:消息框含有兩個(gè)按鈕:Retry和Cancel。
MB_YESNO:消息框含有兩個(gè)按鈕:Yes和No。
MB_YESNOCANCEL:消息框含有三個(gè)按鈕:Yes,No和Cancel。
指定下列標(biāo)志中的一個(gè)來(lái)顯示消息框中的圖標(biāo):標(biāo)志的含義如下。
MB_ICONEXCLAMATION:一個(gè)驚嘆號(hào)出現(xiàn)在消息框。
MB_ICONWARNING:一個(gè)驚嘆號(hào)出現(xiàn)在消息框。
MB_ICONINFORMATION:一個(gè)圓圈中小寫(xiě)字母i組成的圖標(biāo)出現(xiàn)在消息框。
MB_ICONASTERISK:一個(gè)圓圈中小寫(xiě)字母i組成的圖標(biāo)出現(xiàn)在消息框。
MB_ICONQUESTION:一個(gè)問(wèn)題標(biāo)記圖標(biāo)出現(xiàn)在消息框。
MB_ICONSTOP:一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框。
MB_ICONERROR:一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框。
MB_ICONHAND:一個(gè)停止消息圖標(biāo)出現(xiàn)在消息框。
指定下列標(biāo)志中的一個(gè)來(lái)顯不缺省的按鈕:標(biāo)志的含義如下。
MB_DEFBUTTON1:第一個(gè)按鈕為缺省按鈕。
MB_DEFSUTTON2;第二個(gè)按鈕為缺省按鈕。
MB_DEFBUTTON3:第三個(gè)按鈕為缺省按鈕。
MB_DEFBUTTON4:第四個(gè)按鈕為缺省按鈕。
如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4沒(méi)有被指定,則MB_DEFBUTTON1為缺省值。
指定下列標(biāo)志中的一個(gè)來(lái)顯示對(duì)話(huà)框的形態(tài):標(biāo)志的含義如卜。
MB_APPLMODAL:在hwnd參數(shù)標(biāo)識(shí)的窗口中繼續(xù)工作以前,用戶(hù)一定響應(yīng)消息框。但是,用戶(hù)可以移動(dòng)到其他線(xiàn)程的窗口且在這些窗口中工作。根據(jù)應(yīng)用程序中窗口的層次機(jī)構(gòu),用戶(hù)則以移動(dòng)到線(xiàn)程內(nèi)的其他窗口。所有母消息框的子窗口自動(dòng)地失效,但是彈出窗口不是這樣。如果既沒(méi)有指定MB_SYSTEMMODAL也沒(méi)有指定MB_TASKMOOAL,則MB_APPLMODAL為缺省的。
MB_SYSTEMMODAL:除了消息框有WB_EX_TOPMOST類(lèi)型,MB_APPLMODAL和WS_EX_TOPMOST一樣。用系統(tǒng)模態(tài)消息框來(lái)改變各種各樣的用戶(hù),主要的損壞錯(cuò)誤需要立即注意(例如,內(nèi)存溢出)。如果不是那些與hwnd聯(lián)系的窗口,此標(biāo)志對(duì)用戶(hù)對(duì)窗口的相互聯(lián)系沒(méi)有影響。
MB_TASKMODAL:如果參數(shù)hwnd為NULL,除了所有屬于當(dāng)前線(xiàn)程高層次的窗口足失效的,MB_TASKMODALL和MB_ApPLMODAL一樣。當(dāng)調(diào)用應(yīng)用程序或庫(kù)沒(méi)有一個(gè)可以得到的窗口句柄時(shí),使用此標(biāo)志。但仍需要阻止到調(diào)用應(yīng)用程序甲其他窗口的輸入而不是擱置其他線(xiàn)程。
另外,可以指定下列標(biāo)志。
MB_DEFAULT_DESKTOP_ONLy:接收輸入的當(dāng)前桌面一定是一個(gè)缺省桌面。否則,函數(shù)調(diào)用失敗。缺省桌面是一個(gè)在用戶(hù)已經(jīng)紀(jì)錄且以后應(yīng)用程序在此上面運(yùn)行的桌面。
MB_HELP:把一個(gè)Help按鈕增加到消息框。選擇Help按鈕或按F1產(chǎn)生一個(gè)Help事件。
MB_RIGHT:文本為右調(diào)整。
MB_RTLREADING:用在Hebrew和Arabic系統(tǒng)中從右到左的順序顯示消息和大寫(xiě)文本。
MB_SETFOREGROUND:消息框變?yōu)榍熬按翱?。在?nèi)部系統(tǒng)為消息個(gè)調(diào)用SetForegrundWindow函數(shù)。
MB_TOPMOSI:消息框用WS_EX_TOPMOST窗口類(lèi)型來(lái)創(chuàng)建MB_SERVICE_NOTIFICATION。
Windows NT:調(diào)用程序是一個(gè)通知事件的用戶(hù)的服務(wù)程序。函數(shù)在當(dāng)前活動(dòng)桌面上顯示一個(gè)消息框,即使沒(méi)有用戶(hù)登記到計(jì)算機(jī)。
VC函數(shù)返回值:
如果程序返回的是失敗的話(huà),會(huì)返回0,否則會(huì)返回相應(yīng)的數(shù)值。
IDABORT 終止按鈕被選擇
IDCANCEL 取消的按鈕被選擇
IDCONTINUE 繼續(xù)的按鈕被選擇
IDIGNORE 忽略的按鈕被選擇
IDNO 否的按鈕被選擇
IDOK 確定的按鈕被選擇
IDRETRY 重試的按鈕被選擇
IDTRYAGAIN 重試一次的按鈕被選擇
IDYES 是的按鈕被選擇
VC函數(shù)源代碼:
if (fError)
{
if (MessageBox(hwndDlg, SZNOTFOUND, SZDELETEITEM,
MB_OKCANCEL)==IDOK)
{
// Prompt for a new item name and repeat the command.
}
else
{
// Cancel the command.
}
}
相關(guān)網(wǎng)址
1. VC2005提示MFC80UD.DLL未找到的解決辦法 http://js.sse6.cn/gzsgfrz/jszj/2009-11-29/1154.html
2. VC編程:彈出窗口函數(shù)MessageBox用法、分析及相應(yīng)源代碼 http://js.sse6.cn/gzsgfrz/jszj/2009-11-29/1155.html
3. VC編程:獲取系統(tǒng)毫秒級(jí)時(shí)間函數(shù)GetTickCount用法、分析及相應(yīng)源代碼 http://js.sse6.cn/gzsgfrz/jszj/2009-11-29/1156.html
4. VC編程:獲取系統(tǒng)進(jìn)程句柄OpenProcess 用法、分析及相應(yīng)源代碼 http://js.sse6.cn/gzsgfrz/jszj/2009-11-29/1157.html
5. VC編程:關(guān)閉進(jìn)程TerminateProcess分析 http://js.sse6.cn/gzsgfrz/jszj/2009-11-29/1158.html
(#)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。