MFC怎么弹出对话框或者警告框

如题,比如我想弹出一个“列表为空”这样的警告,怎么写代码?就像C#的messagebox.show(“列表为空!”);的效果。
我用 MessageBox("列表为空!");的话,出现下面的错误,我没有写成MessageBoxW。
error C2660: “MessageBoxW”: 函数不接受 1 个参数

1、首先输入代码:

int result =MessageBox( TEXT("提示的内容") , TEXT("提示的内容") ,MB_YESNO);

switch(result)

2、然后再输入下面的代码:

{

  case IDYES:

{

//点击YES按钮的具体实现功能

CMFCExampleDoc* pVitaHypDoc =GetDocument();

pVitaHypDoc->getPostDoc()->getMesh()->DeleteAllData();

pVitaHypDoc->getPostDoc()->getResult()->clearData();

pVitaHypDoc->getTestDoc()->getMesh()->DeleteAllData();

pVitaHypDoc->getTestDoc()->getResult()->clearData();

pVitaHypDoc->getGroupManager()->removeAll();

pVitaHypDoc->m_vectorSensorLoadCaseManager.clear();

pVitaHypDoc->FlushAllSegment();

pVitaHypDoc->ClearCustomNotes();

UpdateCustomNote();

pVitaHypDoc->updateTxtNodes(NULL);

pVitaHypDoc->updateHoopsModel();

UpdateView();

((CMainFrame*)AfxGetMainWnd())->m_wndClassView.FillClassView();

((CMainFrame*)AfxGetMainWnd())->m_wndFileView.FillFileView();

break;

}

 case IDNO:

break;

}

3、然后这样就可以了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-09

MFC程序推荐使用AfxMessageBox函数弹出消息或告警,简单示例如下:

AfxMessageBox(_T("列表为空!"));

其中_T是为了适应多类型字符串(UNICODE和多字节)。该函数还可以定制按钮和图标样式,如下为带有问号图标和三按钮的提示框:

if(IDYES==AfxMessageBox(_T("是否要清空列表?"),MB_ICONQUESTION | MB_YESNOCANCEL))
  ;//Do your things


在其它VC程序(也包括MFC程序)中,也可以使用MessageBox函数来弹出消息和告警,这个函数是API函数,需要更多的参数,简单示例如下(第一参数为窗口句柄):

::MessageBox(NULL,_T("列表为空"),_T("警告"),MB_OK);

另外,窗口类也有同名的MessageBox函数,为防止歧义,建议使用顶级作用域::,这样比较通用。

第2个回答  2015-08-22
直接用::MessageBox("对话框");不可以吗?
不行的话就试试这个
::MessageBox(NULL,_T("这是要弹的对话框"),_T("警告"),MB_OK);
第3个回答  2010-04-20
MessageBox(_T("列表为空"),_T("警告"),MB_ICONWARNING|MB_OK);

MessageBox(LPCTSTR szText, LPCTSTR szTitle, UINT flag);
szText:消息框的内容;
szTitle:消息框的标题;
flag:消息框的样式包括图标类型和按钮组合,图标类型有:MB_ICONINFORMATION、MB_ICONWARNING、MB_ICONERROR等等;按钮组合有:MB_OK(只有确定按钮)、MB_YESNO(是、否)等等,记不太清了
第4个回答  2010-04-21
::MessageBox(NULL,_T("列表为空"),_T("标题"),MB_OK);本回答被提问者采纳
相似回答