2017-04-18 40 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