【编程语言】MFC--'MessageBoxA' : function does not take 1 parameter

问题:

在MFC程序CMenuApp中调用 MessageBox("success!");时候,出现错误提示:

'MessageBoxA' : function does not take 1 parameter

解决办法:

调用与之类似的另一个函数,AfxMessageBox

 于是:AfxMessageBox("success!");运行正确通过。

原理:

AfxMessageBox()与MessageBox()的区别:

两个函数的区别:AfxMessageBox比MessageBox简单一些,因为它是一个全局函数所以不需要对应的一个窗口类,但是不能控制消息框标题,常用于调试程序时的内部数据输出或警告;MessageBox比较正式,常用在要提交的应用程序版本中,可以控制标题内容而不必采用含义不明的可执行文件名为标题。

 

此问题还有另外一种解决办法,而且这种办法比较好,是公认的好办法

MessageBox的执行需要在一个窗体下

在没有窗体或者全局函数中,他必须传入一个窗体句柄才可能执行,如果没有,用NULL代替也可,但是此时该消息框属于桌面,可能达不到我们所需要的目的,所以一般要传入一个窗口句柄。 

所以又有了另一种解决办法:

MessageBox函数:四个参数,依次如下:

       hWnd:

  指定该对话框的所有者窗口。如果该参数为空(0),则该对话框不属于任何窗口(?)。

  lpText:

  显示在对话框中的消息。

  lpCaption:

  在对话框标题栏中显示的字符串表达式。如果该参数为空(vbNullString),则使用默认的“错误”作为对话框的标题。

  wType:

  指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等。可以为下列常数之一或某几个数值相加的和。

指定按钮样式:

  MB_ABORTRETRYIGNORE

  显示 Abort、Retry 及 Ignore 按钮。

  MB_OK

  只显示 OK 按钮。(默认)

MessageBox(NULL,"success","OK",MB_ABORTRETRYIGNORE);

注意:其中success是需要显示的字符串,OK是提示框的标题,NULL代表桌面消息框

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值