MFC怎么弹出对话框或者警告框
我用 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、然后这样就可以了。
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函数,为防止歧义,建议使用顶级作用域::,这样比较通用。
不行的话就试试这个
::MessageBox(NULL,_T("这是要弹的对话框"),_T("警告"),MB_OK);
MessageBox(LPCTSTR szText, LPCTSTR szTitle, UINT flag);
szText:消息框的内容;
szTitle:消息框的标题;
flag:消息框的样式包括图标类型和按钮组合,图标类型有:MB_ICONINFORMATION、MB_ICONWARNING、MB_ICONERROR等等;按钮组合有:MB_OK(只有确定按钮)、MB_YESNO(是、否)等等,记不太清了