у нас есть приложение C ++, которое размещает Flex-приложение в диалоге MFC. Все работает нормально, все нажатия кнопок и т. Д. Передаются напрямую, чтобы согнуться без проблем, кроме клавиш ввода и выхода, которые немедленно закрывают диалоговое окно.
Мы можем перехватить клавишу ввода, введя PreTranslateMessage()
или OnOK()
и препятствуют поведению при закрытии окна, но у нас все еще есть проблема передачи этих нажатий клавиши ввода в размещенное гибкое приложение дальше.
На форме нет кнопки "по умолчанию" или чего-либо подобного, возможно, MFC связывает клавишу ввода с кнопкой закрытия в строке заголовка за кулисами или что-то в этом роде.
Есть ли у кого-нибудь идеи, как мы можем помешать MFC обрабатывать клавишу ввода как особый случай?
Большое спасибо за любые подсказки.
Редактировать: Вот PreTranslateMessage()
, который просил мммонем.
BOOL CFlexDialog::PreTranslateMessage(MSG* pMsg)
{
if ((pMsg->message == WM_KEYDOWN))
{
if (pMsg->wParam == VK_RETURN)
{
m_ctrlFlex->OnReturnKeyPressed();
return TRUE;
}
}
return __super::PreTranslateMessage(pMsg);
}
Но это не подходящее решение, вызывая такой метод в приложении Flex, так как это усложняет жизнь разработчику Flex, это означает, что он должен написать специальную версию, реализующую поведение клавиши возврата для каждого элемента управления.
Мы просто хотим, чтобы MFC обрабатывал ключи возврата и выхода как любой другой ключ.