VS2010 MFC MessageBox 消息函数出错

 

       在使用VS2010编写MFC程序时,使用函数:MessageBox("提示信息"),
       void CtestDlg::OnBnClickedButton1()
      {
          MessageBox("你已经提交成功。");
         // TODO: 在此添加控件通知处理程序代码
        }
 
       编译时候出错,出错信息如:

错误 1 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [17]”转换为“LPCTSTR” d:/我的文档/visual studio 2005/projects/test/test/testdlg.cpp 155
  

很多人不知道原因。现在给出这个错误的解决办法。

方法一:由于VS2010默认使用的是UNICODE字符集,在新建项目时,把使用UNICODE字符集取消,如下图:

 

方法二:在使用的函数前加“_T”如:
       void CtestDlg::OnBnClickedButton1()
      {
            MessageBox(_T"你已经提交成功。");
            // TODO: 在此添加控件通知处理程序代码
      }

方法三:

如需要更改已经建立的项目字符集,则选择“项目”-》“XXX项目属性”-》“配置属性”-》“常规”选项中,把“字符集”改为“使用多字节字符集”,然后确定。如下图:

 

OK了。


或者:

<1> Cstring str;

str.Format("a = %d",a);

<2> ::MessageBox(head,_T("content"),_T("tile"),MB_ok);

<3>AfxMessageBox(nstringID,MB_YESNO|MB_ICONSTOP);

<4>CWnd::MessageBox();

<5>MessageBox((LPTSTR)(LPTSTR)str);


MFCMessageBox是对MessageBox的封装,它有两个不同的重载函数。第一个重载函数是AfxMessageBox(UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT)-1),它可以显示一个提示信息,并提供一些按钮和图标供用户选择。第二个重载函数是CWnd的成员函数MessageBox,它也可以显示一个提示信息,并提供一些按钮和图标供用户选择。另外,MFC还提供了一个全局函数AfxMessageBox,它和MessageBox的功能类似,可以在MFC应用程序中使用。MFCMessageBox相对于Win32 API的MessageBox更加灵活和方便,可以实现自定义的MessageBox布局和风格。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [MFCMessageBox的用法](https://blog.csdn.net/qq_36633275/article/details/107913192)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MFC 自定义 MessageBox](https://download.csdn.net/download/china_o3/17713227)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值