|
최보현 님이 쓰신 글 :
: 이성수 님이 쓰신 글 :
: : 제 소스에서 버그가 발생 했는데 밤을 새워도 답이 나오질 않는군요.
: : 내용은 다음과 같습니다.
: :
: : 메인폼,
: : 패스워드입력폼:사용자의 아디와 패스워드를 받는폼
: :
: : 2개의 폼이 있을때 프로그램 초기실행시 메인폼의 OnActive에서 패스워드입력폼이 모달폼으로 뜨게
: : 하였습니다.
: :
: : 메인폼에서 종료버튼을 클릭하면 메세지박스가 나타나고 Yes/No를 선택 하면 종료를 하게됩니다.
: : 이떄 No를 선택하면 패스워드입력폼이 모달로 뜨고요.
: : 여기까지는 이상이없는데
: : 패스워드입력폼에만든 종료버튼을 클릭하면 메인폼의 OnClose()를 호출하게 되거든요
: : 이때 Yes를 선택하면 이상이없지만 No를 선택하면 패스워드 모달폼이 화면에 나타나지 않아요?
: : 그래서 윈도우 탐색기나 다른 프로그램을 풀화면으로 띄었다 없애면 나타나더라구요!!!
: : 어떻게 해결할수 있을까요?
:
: 상당히 애매한 문제 인데요
: 저도 이글을 세번 읽고서야 이해가 되는군요
:
: 일단 메인폼에서 종료 버튼을 누르면, YES/NO 를 물어보구 거기서 NO 를 선택하면...
: 패스워드 창이뜨는데 이 패스워드차 에서 종료버튼을 누르면 메인의 OnClose 를 호출한다는
: 야그조~~ 그렇게 되면 다시 메인창에서 YES/NO 를 물어볼테구요....
: 그럼 거시서 다시 No 를 선택하면 .... 이건 무한루프가 되는거지요~~~ 그렇지요 ....
: 이미 떠 있는 패스워드 창을 또 다시 띄운다는 야그잖아요 ...
:
: 패스워드 창이 ... 일단 동적으로 생성하는 겁니까 아니면... 정적으로 생성된 창을 엑티브만
: 시키는 겁니까 ? 걸 알아야 할것 같구요 ...
:
: 어쨌든 ... 이문제를 해결 할려믄
: 이렇게 하십시요
:
: 패스워드창에서 ... 종료버튼을 누르면 ... 메인의 종료함수 OnClose 를 실행하지 말구 이렇게
: 메인창에서 말구 패스워드창에서... 직접 YES/NO 를 물어보고 ... No 이면 .... YES/NO 박스가
: 닫히면서 그냥 바로 패스워드 창이겠조
: 문제는 YES 인데 YES 를 누르면 메인창을 Close 해야 하잖아요 .. 그럼 OnClose 가 실행 될테구 ...
: 그럼 다시 YES/NO 를 물어보게 되니깐 ....
: OnClose 가 실행이 않되도록 .... 해야 하겠지요
: 이렇게 ...
:
: MainForm->OnClose = NULL;
: MainForm->Close();
:
: 이렇게 하면 ... YES 일때 메인창의 OnClose 가 실행 되지 않구 ....
: 바루 프로그램이 종료 하게 됩니다 ...
: 그럼 답이 되셨는지요 ....
:
: 개박살 보단 조금 나은 허접 현이가 ....
:
답변 감사합니다. 즐프하세용!
|