多个dlg对话框,用树型控件控制显示与隐藏,怎么样把多个对话框放进数组里来循环只显示其中的一个?

scansoft 2010-05-03 08:02:06
多个dlg对话框,用树型控件控制显示与隐藏,怎么样把多个对话框类的变量,放进数组里循环只显示其中的一个?
如果把多个对话框类变量放进一个数组里,在控制显示的函数里传一个参数进去,

1.这个参数用什么类型?
2.怎么样根据参数判断相应的对话框类?

比如我有三个对话框窗口,分别是:
CLightDlg m_pLightDlg;
CBeepDlg m_pBeepDlg;
CResetDlg m_pResetDlg;

当点击树型控制的“复位”执行:
m_pResetDlg.ShowWindow(SW_SHOW);
m_pBeepDlg.ShowWindow(SW_HIDE);
m_pLightDlg.ShowWindow(SW_HIDE);

当点击树型控制的“指示灯”执行:
m_pResetDlg.ShowWindow(SW_HIDE);
m_pBeepDlg.ShowWindow(SW_HIDE);
m_pLightDlg.ShowWindow(SW_SHOW);

当点击树型控制的“警报”执行:
m_pResetDlg.ShowWindow(SW_HIDE);
m_pBeepDlg.ShowWindow(SW_SHOW);
m_pLightDlg.ShowWindow(SW_HIDE);

我现在想用一个循环来控制对话框窗口的显示与隐藏怎么来做?
...全文
212 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-05-11
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
Fireway2008 2010-05-03
  • 打赏
  • 举报
回复
当然,如果对应的窗体多起来的时候 有n个的时候
如果想简化代码用for 循环 从 0-〉n-1 进行判断
就要排列好窗体的顺序和编号,然后判断case n进行函数调用即可。


另外你的参数m_pLightDlg看起来不是指针,
建议不要用p 在里边,习惯问题。
Fireway2008 2010-05-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 scansoft 的回复:]
多个dlg对话框,用树型控件控制显示与隐藏,怎么样把多个对话框类的变量,放进数组里循环只显示其中的一个?
如果把多个对话框类变量放进一个数组里,在控制显示的函数里传一个参数进去,

1.这个参数用什么类型?
2.怎么样根据参数判断相应的对话框类?

比如我有三个对话框窗口,分别是:
CLightDlg m_pLightDlg;
CBeepDlg m_pBeepDlg;
CRese……
[/Quote]
可以尝试以下处理:
1.参数用int 类型,比如 int nDlgID
然后,判断的参数可以直接用
enum WhichDlg{ ResetDlg, BeepDlg, LightDlg...}//0 1 2....


2.利用swith case对 int nDlgID
的nDlgID参数进行判断目前是哪一个窗口在显示。


然后利用写代码判断:


//当点击树型控制的“复位”执行:

case ResetDlg:

m_pResetDlg.ShowWindow(SW_SHOW);
m_pBeepDlg.ShowWindow(SW_HIDE);
m_pLightDlg.ShowWindow(SW_HIDE);

//当点击树型控制的“指示灯”执行:
case LightDlg:
m_pResetDlg.ShowWindow(SW_HIDE);
m_pBeepDlg.ShowWindow(SW_HIDE);
m_pLightDlg.ShowWindow(SW_SHOW);


//当点击树型控制的“警报”执行:
case BeepDlg:
m_pResetDlg.ShowWindow(SW_HIDE);
m_pBeepDlg.ShowWindow(SW_SHOW);
m_pLightDlg.ShowWindow(SW_HIDE);
向立天 2010-05-03
  • 打赏
  • 举报
回复
树型控件有一个SetItemData函数
你可以把Item对应的对话框指针保存在ItemData中
这样就可以有针对性的显示和隐藏对话框了
尹成 2010-05-03
  • 打赏
  • 举报
回复
楼上正解!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧