在主程序下设置了A 、B两个勾选框,勾选则弹出子窗口,通过指针的形式进行参数传递。
如:DDX_Text(pDX, IDC_EDIT1, ((CMiracleDlg*)GetParent())->H1_1Min);
我想把B做成A的下一级子窗口,而不是和A平行的窗口:即主界面先勾选A,弹出A;在A窗口中再勾选B,弹出B.
因为菜鸟级别的水平,实验了同样的指针形式,结果在B窗编辑后,主窗口的对应参数没有变化,说明B窗的参数传递失败了!实在不明白什么原因,所以请大虾指点一下,怎样实现二级子窗口的设计。
工程文件可传,请专家费心。谢谢
B窗口你是怎么把主窗口的变量和B窗口的控件绑定的呢?
回复:
不行啊,B窗口的父窗口现在是A窗口了啊,GetParent()得到的是A窗口指针
照现在的逻辑,需要再GetParent()一次
((CMiracleDlg*)(GetParent()->GetParent())->P1_Min)
谢谢。
H1_1Min在主程序中定义的,在A窗口2.CPP:
DDX_Text(pDX, IDC_EDIT1, ((CMiracleDlg*)GetParent())->H1_1Min);
可以实现A中编辑,约束H1_1Min的范围。
于是我想当然认为,在A中再做一个勾选框,勾选弹出B窗。还是用指针:
DDX_Text(pDX, IDC_EDIT1, ((CMiracleDlg*)GetParent())->P1_Min);
结果失败了。