Я пытаюсь получить устаревшее приложение MFC и новый пользовательский контроль WPF, чтобы закрыть диалоговое окно на основе нажатия кнопки в пользовательском контроле WPF. В сущности, я хотел бы получить несколько советов о том, как получить функцию DoModal()
возврата MFC.
По разным причинам диалоговое окно представляет собой MFC CDialog
, запущенный через DoModal
, в котором размещается один компонент WPF и ничего больше. Этот компонент затем имеет кнопку, которая должна будет закрыть CDialog
после выполнения некоторых различных задач. Это приложение является… выходящим… случаем унаследованного, и очень трудно отследить поток управления и то, где находятся фактические сообщения, управляющие этой штукой. Он также полон #defines
, что делает все в два раза сложнее, чем должно быть. Я думаю Я идентифицировал насос сообщений, поэтому я думаю, что могу что-то вставить в него, чтобы сделать его ближе - если я смогу добраться до этого из элемента управления WPF.
Я не знаю, как отправить сообщение windows из usercontrol на хост или как получить HWND
хоста из usercontrol. Я уверен, что есть способ получить это или другой лучший способ общения?
Правильный ли подход для отправки WM_CLOSE
сообщения родителю HWND
? Или, может быть, я могу отправить WM_USER
в диалоговую помпу и обработать фактическое закрытие там?