기존 MFC 응용 프로그램과 새 WPF usercontrol을 사용하여 WPF usercontrol의 단추 누르기를 기반으로 대화 상자 창을 닫으려고합니다. 본질적으로, 나는 MFC 반환의 DoModal()
기능을 얻을 수있는 방법에 대한 몇 가지 팁을 원합니다.MFC에서 호스팅하는 WPF usercontrol 단추 누르기에서 부모 창을 닫는 방법
여러 가지 이유로 대화 상자는 DoModal
을 통해 시작되는 MFC CDialog
이며, 하나의 WPF 구성 요소 만 호스팅하며 그 밖의 것은 없습니다. 이 구성 요소에는 다양한 작업을 수행 한 후 CDialog
을 닫아야하는 버튼이 있습니다. 이 응용 프로그램은 기존의 사례입니다. 제어 흐름을 추적하는 것이 어렵고이 메시지를 보내는 실제 메시지 펌프가있는 곳입니다. 또한 으로 가득차있어서 모든 것을 두 배나 힘들게 만듭니다. I 생각해 보면 메시지 펌프를 식별 했으므로 WPF 컨트롤에서 그 메시지를 얻을 수 있다면 뭔가를 삽입 할 수 있다고 생각합니다.
usercontrol에서 호스트로 Windows 메시지를 보내거나 호스트의 HWND
을 usercontrol에서 가져 오는 방법을 모르겠습니다. 나는 그것을 얻을 수있는 방법, 또는 더 좋은 의사 소통 방법이있을 것이라고 확신합니까?
WM_CLOSE
메시지를 부모에게 전송하는 올바른 방법은 HWND
입니까? 아니면 WM_USER
을 대화 펌프에 보내고 거기에서 실제 처리를 처리 할 수 있습니까?
좋아요. 확실하게 테스트 해 보겠습니다. 이 프로젝트 만이 미친 컴파일 시간을 특징으로하지 않았다면 ... – Dervall
'WM_CLOSE'는 무엇을받을 것입니까? 기본 창 또는 대화 창입니까? 대화 상자가 아니라 주 창을 닫는 것처럼 보입니다.이 진흙 공이 저와 충돌합니다 :) – Dervall
아마도 대화 상자 창을 닫을 것이고 주 창을 닫을 것입니다. 그래도 테스트를해야 할 것입니다. 불행히도 나는 이것을 C++/MFC 환경에서 조작하지 않았지만 위의 코드를 WPF를 호스팅하는 Windows Forms에서 테스트했으며 동작은 대화 상자 창을 닫는 것이 었습니다. –