2012-06-06 2 views
0

나는 대화 상자를 사용하거나 메시지가 어떻게 든 다음을 수행 할 필요가 있지만, 정말 중요하지 않습니다 여부 :어떻게해야합니까 쿨 대화 물건 (MFC)

나는 대화 상자 기반있어 MFC 애플리케이션. 기본 대화 상자는 스레드를 만드는 프로 시저를 호출합니다. 프로 시저에 대한 호출은 while 루프 내에 있습니다. (기본적으로 파일 처리 프로그램입니다. 파일 저장을 위해 스레드가 생성되므로 저장되는 각 파일에 대해 스레드가 생성됩니다.) 주 스레드를 올바르게 일시 중단했다가 다시 시작합니다. 그러나 메시지 상자/대화 상자에 "기다려주십시오"와 같은 메시지를 표시하고 기본 대화 상자 업데이트를받는 방법을 모르겠다 ... 0o

기본적으로 메인을 잠그고 싶습니다. 사용자 상호 작용 (대화 상자에서 아무것도 선택하지 않거나 버튼을 클릭하는 것과 같은)에서 대화 상자를 열지 만 대화 상자에 진행률 표시 줄을 업데이트하려면 ...

아이디어가 있으십니까?

+1

조금 오래되었지만 다음 작업을 수행하십시오. http://www.microsoft.com/msj/0297/wicked/wicked0297.aspx – Flot2011

+0

정확히 찾고 있던 내용입니다! 고맙습니다! 당신이 그걸 믿을 수 있도록 대답 해 주시겠습니까? 감사! – redhotspike

답변

0

음, 이것은 아주 오래된 응용 프로그램입니다.

이 샘플을 따르지 않아도됩니다. 그러나 당신은 그 생각을 따를 수 있습니다.

다음 두 가지 중에서 선택할 수 있습니다. 주 대화 상자에 진행률 표시 줄을 만들고 모든 대화 상자를 비활성화하지만 진행합니다. 대화 상자의 핸들을 전달하는 스레드를 시작하십시오. 스레드에서이 핸들을 사용하여 대화 진행을 허용하는 사용자 지정 메시지를 보냅니다. 또 다른 메시지는 대화 상자에 스레드가 완료되었음을 알리고 모든 컨트롤을 활성화합니다.

다른 옵션은 모덜리스 대화 상자를 생성하고 모덜리스 대화 상자의 핸들을 전달하는 스레드를 시작한 다음 위에서 설명한대로 처리합니다. 모덜리스 대화 상자를 파기하기 전에 모덜리스 시작 (OnInitDialog)시 기본 대화 상자를 사용 불가능하게하고 사용 가능하게하고 스레드 완료 메시지 수신시 사용 가능하게하는 모덜리스 대화 상자 포인터를 전달하십시오.

관련 문제