У нас есть элемент управления MFC ActiveX, созданный в Visual Studio 2008 с поддержкой CLR, который создает сетку WPF и показывает окно WPF внутри этой сетки.
Этот ActiveX размещен в Internet Explorer, и он отображается и работает хорошо, за исключением того, что не работают клавиши табуляции, клавиши возврата, функциональные клавиши и т. Д., Поскольку они обрабатываются IE вместо окна WPF. Обычные персонажи работают хорошо. Это известная функция, и ранее, когда мы использовали диалоговые окна на основе MFC в этом ActiveX, мы использовали это: http://support.microsoft.com/kb/187988. Просто используя этот код, можно
AfxGetApp()->PreTranslateMessage((LPMSG)lParam)
оператор вернет FALSE, поэтому я не могу обработать нажатие клавиши окном WPF. Мне кажется, мне нужно спросить это у приложения WPF вместо CWinApp, но я не уверен, как и если это можно сделать. У кого-нибудь достаточно понимания того, что здесь происходит, чтобы заставить это работать?
Использование XBAP вместо ActiveX не вариант, так как он запускается в приложении интрасети, которому требуется больше доступа, чем может дать нам песочница.
Надеюсь, этой информации достаточно.
С наилучшими пожеланиями
Свейн Дибвик