Элемент управления должен обрабатывать WM_GETDLGCODE
и включать в результат не менее DLGC_WANTARROWS
.
Кроме того, если элемент управления ActiveX написан на Delphi и использует csReflector
в его ControlStyle
, его следует перестроить с помощью обработчиков сообщений WM_KEYDOWN
и WM_KEYUP
(и любых других необходимых), добавленных к TReflectorWindow
класс в AxCtrls
блоке для делегирования сообщений в элемент управления VCL:
procedure TReflectorWindow.WMKeyDown(var Message: TMessage);
begin
Message.Result := FControl.Perform(Message.Msg, Message.WParam, Message.LParam);
end;
procedure TReflectorWindow.WMKeyUp(var Message: TMessage);
begin
Message.Result := FControl.Perform(Message.Msg, Message.WParam, Message.LParam);
end;
Этого вполне достаточно для работы в моих тестах с использованием D2007.