У меня есть C # Winform, которая вызывает C ++ API, который действует как интерфейс к C ++ Form. Этот C ++ API создает окно VCL следующим образом.
void WINAPI Create(Handle hwnd)
{
if(hwnd != NULL)
{
Application->Handle = hwnd;
MyForm = new TMyForm(Application->Owner)
}
}
Окно C ++ может отображаться, но по некоторым причинам некоторые события нажатия клавиш не работают, особенно клавиша [Enter].
Я попытался проверить сообщения окна, используя spy ++ в окне C #, клавиша [Enter] отправляет WM_CHAR между WM_KEYUP и WM_KEYDOWN.
Я также попробовал это на C ++, и все ключи посылают WM_CHAR, кроме клавиш [Alt] и [Enter]. Я думал, что это может быть из-за неправильной настройки родительского окна C ++ или что-то.
Можно ли установить родительский элемент окна VCL в C # Window?
Спасибо
Задача ещё не решена.
Других решений пока нет …