2009-09-17 3 views

답변

3

일반적인 MFC 응용 프로그램에는 Document-View-Frame 아키텍처가 있습니다. 데이터는 Document 객체에 저장되고 전역 적으로 액세스됩니다. AfxGetMainWnd()를 통해 어디에서나 액세스 할 수 있습니다.

또한 AfxGetApp()는 주 응용 프로그램에 대한 포인터를 가져 오며 문서보기 아키텍처를 사용하지 않는 경우에도 데이터를 저장할 수 있습니다. 많은 데이터가있는 경우 데이터를 보유 할 클래스를 생성 한 다음 인스턴스를 멤버 변수로 프로젝트의 CWinApp에 추가 할 수 있습니다.

다른 옵션은 대화 상자 자체를 CWinApp의 멤버 변수로 사용하는 것입니다. 그런 다음 각 대화 상자에서 다른 멤버를 참조 할 수 있습니다. 기본적으로 사용자는 '확인'을 클릭하지만 대화 상자는 사라지지만 삭제되지는 않습니다. 즉, 대화 상자 변수를 통해 입력 한 모든 데이터에 계속 액세스 할 수 있습니다.

1

대화 상자간에 데이터를 공유하는 방법은 많습니다. 당신은 당신의 필요에 대해 더 구체적으로 밝혀야 할 수도 있습니다.

  1. 전역 변수에 저장하십시오.
  2. thread local storage (TLS)에 저장하십시오.
  3. 하나의 대화 상자에서 SendMessage() 또는 PostMessage()을 통해 창 메시지를 보냅니다.

상황이 더 복잡해집니다.

관련 문제