어떻게해야할지 모르겠지만 창 주 메뉴를 열면 내 프로그램의 주 메시지 루프 (PeekMessage/GetMessage 등)가 중지됩니다. 메시지가 도착하면 WindowProc이 여전히 호출되기 때문에 모달 대화 상자가 열리는 것과 유사합니다. 그래서 다른 메시지 루프가 어딘가에서 계속 발생해야합니다.주 메뉴를 항상 모달 작업으로 여는 중입니까?
기본 메시지 루프가 어떤 기능이나 메시지를 차단하는지 아직 알지 못합니다. (예 : 아직 테스트하지 않았습니다.) DefWindowProc의 어딘가에서 메뉴를 여는 것과 관련이있는 것으로 추측됩니다. .
Windows의 기본 메뉴 동작입니까? 이 경우 실제로이 점이 무엇입니까? 메인 메시지 루프가 내부 메시지 루프 대신 계속 실행되도록 변경할 수 있습니까?
예, 작동 방식입니다. Windows가 모달 메뉴 루프를 시작하면 [WM_ENTERMENULOOP] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms647595%28v=vs.85%29.aspx) 메시지가 표시됩니다. 자신 만의 메뉴를 만드는 것 이외의 다른 방법은 피할 수 없습니다. – arx
왜 이런 식으로했는지 알아 보시겠습니까? – Cray
이 디자인은 20 세 이상입니다. 그 당시에는 가장 쉽고 저렴한 방법이었습니다. 그리고 문제가되는 경우는 거의 없지만 문제는 거의 없습니다. – arx