Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

ActiveX controls in BCB6

831
11 октября 2005 года
S_T
117 / / 23.10.2002
Есть некоторый ActiveX контрол (писанный не на билдере). Его задача: рисовать некоторое изображение, а так же отлавливать на себе движения курсора мыши (и производить некоторые действия).
В специальных контейнерах для тестирования ActiveX контролов - все работает как и задумывалось.

Теперь идем в Builder6.0. Там есть пункт меню (что то вроде)
Components->Install ActiveX Components.
Воспользовавшись этим пунктом - настраиваю в палитре компонентов в билдере этот контрол. Кидаю его на форму - все отображается прекрасно. Но вот сообщения о движениях мыши ни в какую в этот контрол не приходят и не обрабатываются.

Что делать? Как научить этот контрол получать сообщения от мыши, когда он лежит на форме?
831
11 октября 2005 года
S_T
117 / / 23.10.2002
Через одно метсто решилась эта проблема: на форме вешаем обработчк движения мыши. Его реализация такая:
Код:
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
  WPARAM wParam = 0;
  if (Shift.Contains(ssShift))
  {
    wParam |= MK_SHIFT;
  }
  if (Shift.Contains(ssCtrl))
  {
    wParam |= MK_CONTROL;
  }
  if (Shift.Contains(ssLeft))
  {
    wParam |= MK_LBUTTON;
  }
  if (Shift.Contains(ssRight))
  {
    wParam |= MK_LBUTTON;
  }
  if (Shift.Contains(ssRight))
  {
    wParam |= MK_RBUTTON;
  }
  if (Shift.Contains(ssMiddle))
  {
    wParam |= MK_MBUTTON;
  }
  TPoint pt(X, Y);
  pt = ActiveXControl->ParentToClient(pt, this);
  LPARAM lParam = pt.x | (pt.y << 16);
  ::SendMessage(ActiveXControl->Handle, WM_MOUSEMOVE, wParam, lParam);
}


Но ведь это же такое уродство! Есть ли другой способ научить форму не перехватывать сообщения от мыши, когда мышь находится над окном данного ActiveX контрола?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог