Координаты точки в экранных координатах

Автор PS, 18.02.12, 18:32:53

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

PS

Подскажите как преобразовать координаты точки Point(double x, double y) в экранные координаты?

Пересчитывайте относительно верхнего левого угла окна.

PS

+1
Большое спасибо. Полдня мучился, но до такого не додумался.
Еще раз спасибо!

PS

#3
Может кому понадобится:

HWND hwndFrame = ( HWND )docFrame->GetHWND();
CRect rectFrame;
::GetClientRect( hwndFrame, &rectFrame );

double xs, xss, ys, yss, z;
_variant_t rs = docFrame->ConvertCoordinates( kcGeoView, rectFrame.left, rectFrame.top, &xs, &ys, &z );
_variant_t rss = docFrame->ConvertCoordinates( kcGeoView, rectFrame.right, rectFrame.bottom, &xss, &yss, &z );
if ( !rs || !rss ) return;

double dx = abs( xss - xs ) / rectFrame.Width();
double dy = abs( yss - ys ) / rectFrame.Height();

long x = ( long )( abs( X - xs ) / dx );
long y = ( long )( abs( Y - ys ) / dy );