MDI主窗体和子窗体的问题...

wrw001 2006-03-26 08:47:32
1个主窗体Form1 下面可动态创建 N个子窗体Form2
程序运行时候 所有子窗体都动态创建 但Form2可以创建多个 而且子窗体的关闭时都释放掉
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Action=caFree;
}

现在我在主窗体上想保存Active的那个子窗体Form2中的Image 里图像,子窗体我没有编号,
Active某一个Form2后 我用Form2->Image1->Picture->SaveToFile("......");可以保存Active的 Form2里的图像,换下一个 Active后 也可以正常保存

但我将这一系列的Form2中随便关闭1个或几个后 再保存就出错 (如果不Action=caFree;
释放,关闭Form2的时候 只是最小化 就没这个问题)
...全文
119 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wrw001 2006-04-06
  • 打赏
  • 举报
回复
可是我需要操作子窗体里的控件 例如IMAGE里的图像
this->ActiveMDIChild ->Image 是不行的呀..
BenLeak 2006-03-27
  • 打赏
  • 举报
回复
你在 new 的窗口或者别的地方不能直接使用 Form2 这样的指针,
因为这个指针指向的 Form 可能不存在
在 Form2 窗口中使用 this 指针
在别的地方可以使用 MDIForm->ActiveMDIChild

TForm2 * form2;
from2 = dynamic_cast <TForm2 *>(MDIForm->ActiveMDIChild);
if(NULL != form2)
{
...
}

MDIForm->ActiveMDIChild 中的 MDIForm 指的是主窗口指针,如果就在主窗口中
使用 this->ActiveMDIChild 或者 ActiveMDIChild 即可

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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