如何通过switch…case来选择显示不同的Dialog? 加上括号就行了case 0:{Cdialog1 dlg1;dlg1.DoModual();} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 you may try this:void Function1(){ CDialog1 dlg1; dlg1.DoModal();}void Function2(){ CDialog2 dlg2; dlg2.DoModal();}case 1: Function1(); break;case 2: Function2(); break; 在CASE后面的定义都会被忽略掉,所以编译出错.你可以用IF-ELSE来替代SWITCH-CASE CDialog *pDlg = NULL;switch (m_ListSelection){case 0:pDlg = (CDialog*) new Cdialog1();pDlg->DoModal();delete pDlg;break;case 1:pDlg = (CDialog*) new Cdialog1();pDlg->DoModal();delete pDlg;break;case 2:………orCDialog *pDlg = NULL;switch (m_ListSelection){case 0:pDlg = (CDialog*) new Cdialog1();break;case 1:pDlg = (CDialog*) new Cdialog1();break;case 2:………}pDlg->DoModal();delete pDlg; 還是頂樓 pzone(见分眼红) 的方法比較簡便吧. 其实上面都是对的,只要你在对话在Switch外面申明就可以了。而且其它的类型也是一样的 楼上的方法都可以,但是从Code的角度来看,zhq2000(俗子) 的方法比较好! zhq2000的说的比较好,是挺好的解决这类问题的方法,一般都是用指针比较好的,君不见很多好的代码都是如此的吗? 111222(www.mozilla.org)的思想很好!独立成函数,可以很方便的修改程序,可读性又好!!简单的实现的话加上括号就行了case 0:{Cdialog1 dlg1;dlg1.DoModual();} CDialog *thePointer;switch(m_ListSelection){case 1: thePointer=new Dialog1; break;case 2: thePointer=new Dialog1; break;default: thePointer=NULL;}if(thePointer) thePointer->DoModal(); 自己做一个通用的Dialog,把里面的能改变的全作成参数传过去我就是这么干的,方便我想你的Dialog不会太复杂吧,不然让我自己做,也想不出那么多 1、用无模式对话框2、构建一个类似MFC的映射处理体,这样就可以把你的对话框ID号与具体的处理关联。 pZone的方法是最好的,因为代码很简单。。简单就是好,管它效率高不高。 我在一个CScrollView里面画了一些简单的图形,方形和园,直线等等。 vc如何让两个下拉列表框联动 删除MSSQL数据库特定行记录的方法 vc ctreectrl 移动节点的问题 dll可以加入单片机吗? 我个人论坛的问题,请大家帮忙 我想在服务器端弄一个服务器日志,请问该怎么弄? 开发技术问题! 板主进来领分 多文档应用程序 请问我怎样才能知道另一个程序的threadid? 一个数据长度超过long的大整数增样进行mod运算,如5e100
{
CDialog1 dlg1;
dlg1.DoModal();
}void Function2()
{
CDialog2 dlg2;
dlg2.DoModal();
}
case 1:
Function1();
break;
case 2:
Function2();
break;
switch (m_ListSelection)
{
case 0:
pDlg = (CDialog*) new Cdialog1();
pDlg->DoModal();
delete pDlg;
break;
case 1:
pDlg = (CDialog*) new Cdialog1();
pDlg->DoModal();
delete pDlg;
break;
case 2:
…
…
…orCDialog *pDlg = NULL;
switch (m_ListSelection)
{
case 0:
pDlg = (CDialog*) new Cdialog1();
break;
case 1:
pDlg = (CDialog*) new Cdialog1();
break;
case 2:
…
…
…
}
pDlg->DoModal();
delete pDlg;
而且其它的类型也是一样的
独立成函数,可以很方便的修改程序,可读性又好!!简单的实现的话加上括号就行了
case 0:
{
Cdialog1 dlg1;
dlg1.DoModual();
}
switch(m_ListSelection)
{
case 1:
thePointer=new Dialog1;
break;
case 2:
thePointer=new Dialog1;
break;
default:
thePointer=NULL;
}
if(thePointer) thePointer->DoModal();
我就是这么干的,方便我想你的Dialog不会太复杂吧,不然让我自己做,也想不出那么多
2、构建一个类似MFC的映射处理体,这样就可以把你的对话框ID号与具体的处理关联。