使用windows系統的過程中經常會見到訊息對話方塊,提示我們有異常發生或提出詢問等。因為在軟體開發
中經常用到訊息對話方塊,所以mfc提供了兩個函式可以直接生成指定風格的訊息對話方塊,而不需要我們在每次使用的時候都要去建立對話方塊資源和生成對話方塊類等。這兩個函式就是cwnd類的成員函式messagebox()和全域性函式afxmessagebox()。
一.cwnd::messagebox()函式和afxmessagebox()函式的用法
下面雞啄公尺就分別講解兩個函式的用法。
1.cwnd::messagebox()函式
cwnd::messagebox()的函式原型如下:
int messagebox(
lpctstr lpsztext,
lpctstr lpszcaption = null,
uint ntype = mb_ok
);引數說明:
lpsztext:需要顯示的訊息字串。
lpszcaption:訊息對話方塊的標題字串。預設值為null。取值為null時使用預設標題。
ntype:訊息對話方塊的風格和屬性。預設為mb_ok風格,即只有「確定」按鈕。
ntype的取值可以是下面兩個表中任取乙個值,也可以是各取乙個值的任意組合。即可以指定乙個對話方塊型別,也可以指定乙個對話方塊圖示,還可以兩者都設定。
ntype 取值
引數說明
mb_abortretry
有「終止」、「重試」和「忽略」按鈕
mb_ok
有「確定」按鈕
mb_okcancel
有「確定」和「取消」按鈕
mb_retrycancel
有「重試」和「取消」按鈕
mb_yesno
有「是」和「否」按鈕
mb_yesnocancel
有「是」、「否」和「取消」按鈕
對話方塊型別表
ntype 取值
顯示圖示
mb_iconexclamtion
mb_iconwarning
mb_iconasterisk
mb_iconinformation
mb_iconquestion
mb_iconhand
mb_iconstop
mb_iconerror
對話方塊圖示表
如果想要設定ntype的值為型別和圖示的組合,可以像這樣取值:mb_okcancel | mb_iconquestion。按位取或就可以了。
2.afxmessagebox()函式
afxmessagebox()的函式原型為:
int afxmessagebox(
lpctstr lpsztext,
uint ntype = mb_ok,
uint nidhelp = 0
);引數說明:
lpsztext:同cwnd::messagebox()函式
ntype:cwnd::messagebox()函式
nidhelp:此訊息的幫助的上下文id。預設值為0,取0時表示要使用應用程式的預設幫助上下文。
二.cwnd::messagebox()和afxmessagebox()的返回值
我們在呼叫了上面兩個函式後,都可以彈出模態訊息對話方塊。訊息對話方塊關閉後,我們也都可以得到它們的返回值。兩者的返回值就是使用者在訊息對話方塊上單擊的按鈕的id,可以是以下值:
idabort:單擊「終止」按鈕。
idcancel:單擊「取消」按鈕。
idignore:單擊「忽略」按鈕。
idno:單擊「否」按鈕。
idok:單擊「確定」按鈕。
idretry:單擊「重試」按鈕。
idyes:單擊「是」按鈕。
三.應用舉例
我們還是拿前面加法計算器的程式做例子。
大家是否記得,在模態對話方塊及其彈出過程中我們修改了cadditiondlg::onbnclickedaddbutton()函式,在點了「計算」按鈕以後先彈出了乙個模態對話方塊,詢問使用者是否確定要進行加法計算,並通過模態對話方塊domodal函式的返回值判斷使用者選擇了「確定」還是「取消」。這些功能很明顯訊息對話方塊完全能夠實現,雞啄公尺就使用訊息對話方塊來替代原來的模態對話方塊。
在非模態對話方塊的建立及顯示中,雞啄公尺注釋了模態對話方塊的相關**,加入了非模態對話方塊的建立和顯示**,我們在加入訊息對話方塊之前將非模態對話方塊的**也注釋或刪除掉,確保此函式中不再生成原來的模態對話方塊或非模態對話方塊。
修改後的cadditiondlg::onbnclickedaddbutton()函式如下:
c++**
void
cadditiondlg::onbnclickedaddbutton()
編譯執行,在執行結果對話方塊上點「計算」按鈕彈出以下訊息對話方塊:
大家也可以將messagebox函式換為afxmessagebox()函式,同時引數進行相應修改,執行下看看效果。
對話方塊 訊息對話方塊
我們在使用windows系統的過程中經常會見到訊息對話方塊,提示我們有異常發生或提出詢問等。因為在軟體開發中經常用到訊息對話方塊,所以mfc提供了兩個函式可以直接生成指定風格的訊息對話方塊,而不需要我們在每次使用的時候都要去建立對話方塊資源和生成對話方塊類等。這兩個函式就是cwnd類的成員函式mes...
對話方塊中顯示對話方塊
一 對話方塊中顯示對話方塊的方法 1 首先建立要在對話方塊裡顯示的那個對話方塊,命名為 idd inner 設定這個對話方塊的屬性 1 style 選擇 child 中文版 樣式 選擇 下層 2 border 為 none 中文版 邊框 選擇 無 2 為了顯示時能夠準確定位,我們可以在右邊要顯示對話...
模態對話方塊 非模態對話方塊 標準對話方塊 檔案對話方塊
模態對話方塊 qdialog 非模態對話方塊 qdialog 標準對話方塊 關於對話方塊 問題對話方塊等 qmessagebox 檔案對話方塊 qfiledialog 標準對話方塊還有 qcolordialog 選擇顏色 qfiledialog 選擇檔案或者目錄 qfontdialog 選擇字型 q...