안녕하세요. 천리안 프로그래머포럼 C++Builder 담당자 임펠리테리입니다.
참고삼아 적어봅니다..
실행시킨 프로그램을 '정지'시키는 걸 원한다고 하셨는데.. 만약 정말로 프로그램을
'정지' 시키면, (이런 방법이 정말 있는지는 저도 잘 모르겠는데요)
즉 주어지는 메시지를 처리하지 않도록 정지시켜버리면 아무런 일도
하지못하고 다운된 상태가 되어버립니다. 컨트롤+알트+딜리트를 눌러보면 "응답없음"
으로 나오고, 그 상태로 오래 지속되면 "이 프로그램의 실행을 계속할수 없습니다.."
하는 종료시키란 메시지를 볼 수도 있습니다. 좋은 상태가 아니지요.
원하시는 것이 어떤 결과를 낳을지를 먼저 생각해보시기 바랍니다. 무슨 필요로
그러한 처리가 필요하신지 전혀 밝혀주시지 않았기 때문에 대안도 확실히 내놓기가
뭐한데.. 만약 단순히 특정 동작을 지연시키기 위해서라면, 예를 들어 윈집과 같은
프로그램을 만들어서 메인에서 그 프로그램을 실행시켜 파일을 풀던 중에, 파일을
푸는 동작을 일시 정지시키고 싶다는 것이라면, 서브로 실행될 프로그램에서
사용자 정의 메시지를 하나 만들어서, (예를 들면 WM_PAUSE 등으로 이름을 지어서)
그 메시지의 핸들러를 만들어 이 메시지가 들어오면 동작을 잠시 지연시키고
다시 새로운 메시지가 들어올때까지 빈 루프를 돌도록 하는등의.. 방법은 있겠죠.
이 경우에 메인에서 이들 메시지를 보내줘야겠구요. 또 서브의 빈 루프에서는
Application.ProcessMessages; 를 포함시켜야 얼어버린(frozen) 상태가 되지 않죠.
그럼 참고하시길...
독립문에서 임펠리테리였습니다.
(cbuilder, cbuilder@thrunet.com)
|