|
제가 질문을 잘 못 이해 했네요
Child폼을 닫을때 minimize되지 않고 바로 사라지는 것을 원하시는 줄 알았습니다.
메인폼이 닫힐때 다른 Child폼이 모두 닫히고 나중에 메임폼이 닫혔으면 좋겠다..
뭐 그런 예기인가요?
그렇다면 메인폼의 FormCloseQuery이벤트에서 MDIChild정보를 가지고 Close해주면 됩니다.
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
for(int i=MDIChildCount-1;i>=0;i--)
{
MDIChildren[i]->Close(); // Child폼을 Close한다.
delete MDIChildren[i]; // Child폼을 삭제한다 , 안해도 되지만..
}
}
//---------------------------------------------------------------------------
그럼..
이용태 님이 쓰신 글 :
: 어.. 그게.. 차일드 원도의 FormClose()가 실행이 안됩니다..
:
: 차일드 원도의 FormCloseQuery()만 실행이 되고 차일드 원도의 FormClose()는 실행이 되지 않은 상태에서 바로 메인원도의 FormCloseQuery()가 실행이 되고 메인원도의 FormClose()가 실행됩니다..
:
: 차일드 원도의 FormClose()가 실행이 되어야 화면에서 차일드 원도가 사리질텐데... 그렇지가 않습니다..;;;
:
:
:
:
: 장성호 님이 쓰신 글 :
: : Child폼의 FormClose이벤트에서
: :
: : Action=caFree; 로 해주면 자동 삭제됩니다.
: :
: :
: :
: : 이용태 님이 쓰신 글 :
: : : MDI 프로그램의 메인창의 닫기(X-우측상단)를 누르면...
: : :
: : : 먼저 차일드 원도의 FormCloseQuery()가 실행이 되고...
: : :
: : : 그 다음에 메인원도의 FormCloseQuery() - FormClose()가 실행이 됩니다..
: : :
: : : 그리고 차일드 원도는 계속 안 닫히고 있다가 FormClose()가 실행이 될때에 같이 없어지는거 같더군요...
: : :
: : : 저는 차일드 원도의 FormCloseQurey()가 실행된 후, 즉 메인 원도의 FormCloseQuery()가 실행되기 전에 차일드 원도가 완전히 닫혔으면 좋겠는데..
: : :
: : : 잘 안되네요...
: : :
: : : 어떻게 하면 될까요??
|