2017-04-18 53 views
-1

我試圖用MyForm的C++的MessageBox有文字的按鈕,它可以做的功能,如關閉沒有,但我發現了錯誤,當我嘗試添加按鈕到MessageBox本身。實例超載的MessageBox

錯誤:

  • 'MessageBox的':曖昧的符號智能感知:沒有重載函數實例

  • 智能感知:沒有重載函數的實例「系統:視窗:形式:: MessageBox :: Show「與參數列表 參數類型是:(const char [12],System :: Windows :: Forms :: MessageBoxButtons, System :: Windows :: Forms :: MessageBoxIcon)

我也用#include <windows.h>

代碼:

private: System::Void autoriusToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { 

     MessageBox::Show("Close:\n" 
     "Program?", MessageBoxButtons::OK); 

    } 

private: System::Void apieProgramaToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { 

     MessageBox::Show("Choose your answer", MessageBoxButtons::YesNoCancel, MessageBoxIcon::Exclamation); 

    } 
+0

不相關的問題,但如果你問你的用戶「關閉程序?」,不要只給他一個「好」的選擇! –

+0

使用C++/CLI編寫GUI應用程序確實不受支持;考慮使用C#代替。 –

回答

1
MessageBox::Show("Close:\nProgram?", MessageBoxButtons::OK); 

MessageBox::Show("Choose your answer", MessageBoxButtons::YesNoCancel, MessageBoxIcon::Exclamation); 

OK,你的兩個方法調用正在尋找採取(String^, MessageBoxButtons)(String^, MessageBoxButtons, MessageBoxIcon)重載。

MSDN列出了MessageBox::Show的重載,並且不包含那些重載。最接近的過載是(String^, String^, MessageBoxButtons)(String^, String^, MessageBoxButtons, MessageBoxIcon)。在其中的每一箇中,第二個字符串是消息框標題,即將顯示在消息框標題欄中的文本。

另外,爲了調用這些.Net方法,您不需要#include <windows.h>

像這樣的東西應該爲你做的伎倆:

MessageBox::Show("Close:\nProgram?", "My Fancy App", MessageBoxButtons::OK); 

MessageBox::Show("Choose your answer", "My Fancy App", MessageBoxButtons::YesNoCancel, MessageBoxIcon::Exclamation); 
+0

感謝這種方法的工作原理,我想我寫錯了我的代碼。 – Duona