Здравствуйте, server_mouse, Вы писали:
_>Есть диалог. На нём ActiveX.
_>На WM_MOUSEMOVE ActiveX шлёт своему контейнеру координаты мышки.
_>Вопрос: как преобразовать полученые координаты в координаты клиентской области диалога?
_>Уже перепробовал
_>_>CPoint p(x,y);
_>::ClientToScreen(GetDlgItem(IDC_COMPACTIVEXCTRL1)->GetSafeHwnd(),&p);
_>ScreenToClient(&p);
_>::ScreenToClient(GetDlgItem(IDC_COMPACTIVEXCTRL1)->GetSafeHwnd(),&p);
_>ClientToScreen(&p);
_>
_>Всё неправильно. Необходимо вычислять самому?
Попробуй вот так:
::MapWindowPoints(GetDlgItem(IDC_COMPACTIVEXCTRL1)->GetSafeHwnd(),
this->GetSafeHwnd(), &p, 1);
(предполагая, что this — это диалог). Ну или если ты уж все равно MFC используешь, то так:
GetDlgItem(IDC_COMPACTIVEXCTRL1)->MapWindowPoints(this, &p, 1);