2013-08-22 2 views
0

사용자가 정보를 입력 한 다음 이동 버튼을 누르면 대화 상자가 나타납니다. 이 단추를 누르면 양식 요소 (단추 등)를 비활성화하고 AfxBeginThread(...)을 사용하여 작업자 스레드를 만듭니다. 일단 작업자 스레드가 완료되면 양식을 다시 활성화하기 위해 UI 스레드에 메시지를 보내려고합니다. ::PostMessage(...)을 사용하여 메시지를 보내고 있지만이 메시지를 가로채는 방법을 찾을 수 없습니다.MFC 다이얼로그의 PostMessage 메시지 수신

온라인 (Link #1, Link #2, Link #3)을 검색했지만 자체 메시지 수신기를 구현하는 코드의 예를 찾을 수 없습니다. 헤더에서 나는 그것과 관련이있는 것 같은 미친 정의 문 (DECLARE_MESSAGE_MAP()으로 시작됨)을 볼 수 있지만, 나는 그것을 이해할 수 없다.

도움을 주시면 감사하겠습니다. 감사.

+1

당신이 http://msdn.microsoft.com/en-us/library합니다 (['WM_APP']에서 메시지를 사용할 수 있는지 확인 /windows/desktop/ms644930(v=vs.85).aspx) 범위. –

답변

3

메시지 맵은 테이블입니다. 관심있는 각 메시지에는 메시지와 메시지 핸들러 함수에 대한 함수 포인터가 들어 있습니다. 맵에 사용자 정의 메시지를 추가하려면 ON_MESSAGE 항목을 테이블에 추가하십시오. 작업자 스레드에서이 일의 튜토리얼 예제는 여기에 있습니다 :

http://vcfaq.mvps.org/mfc/12.htm

+0

http://msdn.microsoft.com/en-us/library/k35k2bfs.aspx를 찾았고 연결된 문서에 오류가 있다고 생각합니다. 'WPARAM'과'LPARAM'을 사용할 곳은'UINT'와'LONG'을 사용합니다. 내가 연계 된 MSDN 기사가 작동했습니다. 그래도 도움을 주셔서 감사합니다. – Luke