AfxMessageBox和MessageBox如何使用

2022-03-18 18:26:27 字數 5739 閱讀 4456

1樓:冰跑跳

afxmessagebox是mfc庫提供的,提供了多種過載形式,afxmessagebox是mfc的全域性函式.而messagebox是標準的windows api.

2樓:匿名使用者

一、函式原型

afxmessagebox:

int afxmessagebox( lpctstr lpsztext, uint ntype = mb_ok, uint nidhelp = 0 );

int afxapi afxmessagebox( uint nidprompt, uint ntype = mb_ok, uint nidhelp = (uint) –1 );

在第一種形式中,lpsztext表示在訊息框內部顯示的文字,訊息框的標題為應用程式的可執行檔名(如hello)。在第二種形式中,nidprompt為要顯示的文字字串在字串表中的id。函式呼叫時會自動從字串表中載入字串並顯示在訊息框中。

ntype為訊息框中顯示的按鈕風格和圖示風格的組合,可以採用|(或)操作符組合各種風格。

messagebox:

int winapi messagebox(hwnd hwnd,lpctstr lptext,lpctstr lpcaption,uint utype);

hwnd:訊息框的擁有窗此引數口。如果為null,則訊息框沒有擁有視窗。

lptext:訊息框的內容。

lpcaption:訊息框的標題。

utype:指定一個決定對話方塊的內容和行為的位標誌集。

二、區別

afxmessagebox比messagebox簡單一些,因為它是一個全域性函式所以不需要對應的一個視窗類,但是不能控制訊息框標題,常用於除錯程式時的內部資料輸出或警告;messagebox比較正式,常用在要提交的應用程式版本中,可以控制標題內容而不必採用含義不明的可執行檔名為標題。

mfc裡怎麼用afxmessagebox顯示變數?

3樓:匿名使用者

cstring strcap = "caption";

int icap = 555;

cstring cap;

cap.format ( "標題%s\n變數%d", strcap,icap );

afxmessagebox ( cap.getstring (), mb_ok, 0 );

4樓:匿名使用者

cstring str;

str.format(_t("%d"), your_變數);

afxmessagebox(str);

mfc裡afxmessagebox無法使用

5樓:匿名使用者

vs2005以上編譯器預設選擇unicode模式,該模式下messagebox等等幾乎所有字串的引數都不能使用 "1234" 這樣的字串,因為"1234"是非unicode的編碼,應該改為 _t("1234"),_t()可以自動根據當前是否unicode而轉換成相應的編碼,也就是說不管是不是unicode,_t("1234")肯定是可以用的。另外還有一種方便的寫法是 l"1233" 僅代表unicode,非unicode下不能使用

第二個問題同理

而mfc中通用的字串類cstring很好用的,也是自動適應編碼,可以作為絕大多數api的字串型別引數

6樓:匿名使用者

工程不對或者呼叫位置不對。

貼完整函式**上來並說明所在類和cpp檔案頭包含情況。

7樓:佈列瑟農s狼

afxmessagebox(_t("aaaa"))試試?

mfc中afxmessagebox的使用

8樓:顛倒的世界

1、首先開啟電腦,新建一個基於對話方塊的應用程式,應用程式命名為afxmessageboxdemo,如下圖所示。

2、在開啟的對話方塊中進行如下的處理,新增退出按鈕和一個靜態文字框,如下圖所示。

3、然後雙擊退出按鈕對退出按鈕新增響應函式,響應函式如下。

4、程式執行如下。

5、點選退出按鈕後,程式執行如下,這樣就完成了。

9樓:來自月岩儀態萬千的比目魚

afxmessagebox

int afxmessagebox( lpctstr lpsztext, uint ntype = mb_ok, uint nidhelp =0 );

int afxapi afxmessagebox( uint nidprompt, uint ntype = mb_ok, uint nidhelp = (uint) -1

);返回值:

如果沒有足夠的記憶體來顯示訊息框就返回零,否則可能是下列值之一:

idabort

選擇了abort按鈕。

·idcancel 選擇了cancel按鈕。 ·

idignore 選擇了ignore按鈕。

idno 選擇了no按鈕。

idok 選擇了ok按鈕。

idretry 選擇了retry按鈕。

idyes 選擇了yes按鈕。

如果訊息框具有cancel按鈕,那麼當按下了esc鍵或者是選擇了cancel按鈕時,就會返回idcancel值。如果訊息框沒有cancel按鈕,按下esc鍵沒有任何效果。

在格式化訊息框中顯示的字串時,函式afxformatstring1和afxformatstring2非常有用。

引數:lpsztext 指向一個cstring物件或者以null結尾的字串,包含了要在訊息框中顯示的資訊。

ntype 訊息框的風格。對對話方塊應用任何一種訊息框風格。

nidhelp 訊息的幫助上下文id。0表示將使用應用程式的預設幫助上下文。

nidprompt 用於引用字串表中的字串的唯一的id。

可見 ,你的引數使用錯誤。

nres = afxmessagebox(_t("您確定要進行加法計算嗎?"), mb_okcancel |

mb_iconquestion);

10樓:匿名使用者

nres = afxmessagebox(_t("您確定要進行加法計算嗎?"), mb_okcancel | mb_iconquestion);

afxmessagebox不同於messagebox,不需要自己定義標題

11樓:

int afxmessagebox( lpctstr lpsztext, uint ntype = mb_ok, uint nidhelp = 0 );

int afxapi afxmessagebox( uint nidprompt, uint ntype = mb_ok, uint nidhelp = (uint) –1 );

所以nres = afxmessagebox(_t("您確定要進行加法計算嗎?"), mb_okcancel |

mb_iconquestion);

就可以了

vs2010 的問題 mfc 中 messagebox()用法

12樓:匿名使用者

注意!vc++2010預設是unicode編碼!messagebox(null,_t("我要分啊"),_t("提示"),mb_ok),其中第一個引數是視窗控制代碼!

如何要用多位元組方式,messageboxa(null,"樓主好人","提示",mb_ok),如果不習慣後一種還可以改預設編碼,解決方案上單擊右鍵屬性->配置屬性->常規->字符集->多位元組字符集,樓主我一個個自打出來的,你看著辦吧

13樓:匿名使用者

{ if(findwindow(null,l"我的電腦")!=null) messagebox(l"我的電腦執行說明:這個程式在vs2010中編譯成功,使用的是mfc環境其中onbnclickedbutton1()

14樓:匿名使用者

function messagebox(hwnd: hwnd; text, caption: pchar; type: word): integer;

hwnd:對話方塊父視窗控制代碼,對話方塊顯示在delphi窗體內,可使用窗體的handle屬性,否則可用0,使其直接作為桌面視窗的子視窗。

text:欲顯示的資訊字串。

caption:對話方塊標題字串。

type:對話方塊型別常量。

該函式的返回值為整數,用於對話方塊按鈕的識別。

參考用法如下:

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;

注意:以上訊息框的用法是在cwnd的子類中的應用,如果不是,則要messagebox(null,"ddd","ddd",mb_ok); 或messagebox(hwnd,"ddd","ddd",mb_ok); hwnd為某視窗的控制代碼,或者直接用afxmessagebox。

mfc如何設定afxmessagebox出現的位置

15樓:信嬌索念之

afxmessagebox是無法控制出現位置的,這是一個封裝的快速提示。

需要一個指定位置或者指定樣式、大小的提示框,自己做一個dialog就好了,這樣你可以通過引數控制,在oninitdialog裡面通過movewindow控制對話方塊位置。

16樓:匿名使用者

afxmessagebox是mfc庫提供的全域性函式,其最終結果是呼叫 windowsapi messagebox()

由於引數中沒有提供座標位置的功能,首次彈出來 在螢幕的**,以後會自動按照z次序排列,(就是往右下角 偏移),所以你不能改變它的彈出位置

由於messagebox只是一個小視窗,你可以自己構造一個msgbox類,然後繼承視窗類,

17樓:匿名使用者

你把函式寫在哪就會出理在哪呀

vc++中,messagebox函式怎麼用呀?

18樓:匿名使用者

#include

//切記!當呼叫時,不要呼叫mfc!(afx.h)int main()

return 0;}

19樓:匿名使用者

應該是你建立工程的時候選擇了unicode編碼,所以不能直接使用"hello world!"這樣的字串。

winnt.h標頭檔案中定義:

#ifdef unicode

#define __text(quote) l##quote#else

#define __text(quote) quote#endif

#define text(quote) __text(quote)

M10和M18有什麼區別,M10與M10 1的區別是?

複雜的不談 具體點說主炮差不多 外型也比較類似 不像蘇聯德國坦克殲擊車都是無炮塔的 美國的坦克殲擊車都是薄皮坦克 最主要的區別就是m10比m18防護好點 速度慢點m18的前裝甲20mm炮就可以擊穿 但是速度可以達到80km h 機動性超強 鐳射對射感測器m12和m18有什麼區別 鐳射的優點就是檢測遠...

流量中的MB與M是什麼關係流量單位m和mb是什麼意思

如果是上網流量單位mb,m是mb簡寫,大小一樣。流量單位1gb 1024mb,1mb 1024kb,1kb 1024b。1 mb和m是一bai樣的,簡稱而 du已2,計算機中,單位zhi的大小由大到小 daotb,gb,mb,kb,b3 進製為1024,1tb 1024gb 1gb 1024mb 1...

S和M是什麼意思,m和s是什麼意思

s可以是秒的意思,有不同的意思。m可以是質量的意思等,可以是距離的意思在不同的學科裡 你這動畫裡指的是 施虐傾向 sadi 和受虐傾向 masochi 呵呵,同性戀中s是攻,m是受,即s是施虐者,m是受虐者。也可以用來形容一般人中的施虐者和受虐者 虐,是一家公司,或者就是姓虐待的意思,都有 系列 服...