[MFC - C++] 함수 실행중 다른 함수 우선순위 넘기기 문의 드립니다.
글쓴이: pwy1575 / 작성시간: 일, 2017/10/15 - 4:33오후
안녕하세요
1. MFC Dialog class 에서 버튼 클릭 이벤트로 함수를 호출하였습니다.
2. 호출된 함수가 완전 종료되기 이전에 타 클래스에서 PostMessage를 이용하여 Dlg에 메시지를 전송합니다.
3. 버튼클릭로 호출된 함수가 종료 되기 이전에는 Message로 호출한
ON_MESSAGE(PARK, &CModule_CM_TOOLDlg::OnReceive)
의 OnReceive 함수가 호출되지 않습니다.
추후 버튼클릭으로 인한 함수가 종료되면 호출이 되는것으로 보입니다.
4. 여기서 질문은 버튼 클릭 이벤트로 호출한 함수 내부에 MessageBox 함수를 호출하면 MessageBox가 호출되는 순간에
Message Queue에 들어온 Message가 처리 되어 OnReceive 함수를 호출하는걸 볼 수 있었습니다.(버튼 클릭으로 인한 함수가 종료 되기 이전에)
위와 같이 MessageBox를 호출하지 않고 메시지가 들어오면 우선적으로 처리 할 수 있는 방법이 없을까요?
감사합니다.
Forums:
PostMessage vs. SendMessage
PostMessage 와 SendMessage 의 차이점
검색해보세요.
참고해보세요.
- 다이얼로그의 종료 시점 확인 (F9 F10 F5 디버그 모드)
- 메시지를 전달 한 시점 확인
- 메시지를 전달 받은 시점 확인
- PostMessage() 함수의 인자값. 리턴값. 오류값 확인
- PostMessage() 함수가 전달 할 수 있는 메모리버퍼'와 갯수'에 한계를 초과 했는지 확인
- 사용자 정의 메시지 번호가 잘 정의 되어 있는지 확인. WM_USER + 1000
- 사용자 정의 메시지와 함수가 잘 연결 되어 있는지 확인.
- 컴파일이 제대로 되어 있는지 확인 (재빌드. debug. release. 32. 64. static. multi thread 등등)
//
- Event 를 사용하거나.
- Socket 통신을 사용하거나.
- CreateFileMapping() 등으로 파일이나. 메모리를 공유하는 방법도 있을겁니다.
//
모달리스 메시지 박스'를 사용하는 방법도 있을겁니다.
message box non modal
http://www.cplusplus.com/forum/windows/43982/
//
TRACE() 함수 : 255자 이상에 문자는 메모리 오류가 발생할 수 있으니. 주의해야 합니다.
OutputDebugString() 함수'로 Visual Studio 디버그 화면'에서 확인이 가능합니다.
//
printf() 함수로 메시지 확인 방법으로는 그냥 콘솔로 사용하셔도 됩니다.
AllocConsole();
FreeConsole();
MFC Console
https://www.google.co.kr/search?q=MFC+Console&oq=MFC+Console&aqs=chrome..69i57j0l5.4431j0j8&sourceid=chrome&ie=UTF-8
//
그냥. 잘되는 책과 사이트에 예제 소스를 참고 하는것이 좋습니다.
PostMessage - MSDN
https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms644944(v=vs.85).aspx
PostMessage - 코드 프로젝트
https://www.codeproject.com/search.aspx?q=PostMessage&x=0&y=0&sbo=kw
PostMessage - 네이버 책
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=PostMessage
IPC - 코드구루
http://www.codeguru.com/cpp/w-p/system/sharedmemory/article.php/c2879/Shared-Memory-Inter-Process-Communication-IPC.htm
IPC Visual C - 네이버 책
http://book.naver.com/search/search.nhn?sm=sta_hty.book&sug=&where=nexearch&query=IPC+Visual+C
Interprocess Communications - MSDN
https://msdn.microsoft.com/ko-kr/library/windows/desktop/aa365574(v=vs.85).aspx
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기