Hi ALL!
Есть диалог. На нём ActiveX.
На WM_MOUSEMOVE ActiveX шлёт своему контейнеру координаты мышки.
Вопрос: как преобразовать полученые координаты в координаты клиентской области диалога?
Уже перепробовал
CPoint p(x,y);
::ClientToScreen(GetDlgItem(IDC_COMPACTIVEXCTRL1)->GetSafeHwnd(),&p);
ScreenToClient(&p);
::ScreenToClient(GetDlgItem(IDC_COMPACTIVEXCTRL1)->GetSafeHwnd(),&p);
ClientToScreen(&p);
Всё неправильно. Необходимо вычислять самому?
Здравствуйте, 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);