iCAx开思工具箱
标题:
关于Command lifecycle和RequestDelayedDestruction()作用的问题
[打印本页]
作者:
ashio
时间:
2007-8-7 18:52
标题:
关于Command lifecycle和RequestDelayedDestruction()作用的问题
[size=-1]一个基于对话框(记为对话框1)的Command(exclusive),通过OK按钮的响应函数调用另一个对话框(非Command,记为对话框2),如下:
SetVisibility(CATDlgHide);
RequestDelayedDestruction();
DimensionDefinition *pDimensionDefinitionDialog = new DimensionDefinition;
pDimensionDefinitionDialog->Build();
pDimensionDefinitionDialog->SetVisibility(CATDlgShow);
对话框2里有一个Back按钮,用于回到对话框1,相应函数如下:
SetVisibility(CATDlgHide);
RequestDelayedDestruction();
IndustrialDesign *pIDDialog = new IndustrialDesign;
pIDDialog->Build();
pIDDialog->SetVisibility(CATDlgShow);
但是按下back键后,得到的对话框1上的内容有重叠,而且在按下对话框1的OK后,得到两个对话框2,也就是生成了两个对话框1,注释掉pIDDialog->Build();后正常。
在调用对话框2时,通过RequestDelayedDestruction();已经调用了一次对话框1的析构函数;
我想请问,即使调用了析构函数,Build();函数创建的内容还都在存在于内存中?再次调用此对话框时只要调用它的构造函数就可以了吗?
在调用对话框2(一个普通对话框,不是command)的时候,Command是什么状态,是Deactivate还是被Cancel了?
作者:
ashio
时间:
2007-8-9 22:51
自己顶一下~~
作者:
acoka
时间:
2007-8-9 23:16
老大,给出sample workspace了话,你问得也方便
回答的人也省时间
DS的技术支持可都是按15分钟单位算钱,把你的帖子写成workspace,估计轻松15分钟就没了。银子哗哗留掉了哦
作者:
ashio
时间:
2007-8-10 19:32
原来想写得清楚些,现在看来是太长了,看起来有点累,以后一定注意:)
作者:
horizan
时间:
2007-8-11 08:35
SetVisibility(CATDlgHide);只是隐藏,没有清除资源,最好是delete掉。
有关对话框资源的,跟CMD的状态没有关系。
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3