Здравствуйте!
Тема - в продолжение соседней темы о удалении объектов и обновлении картинки.
Итак я получаю объект с ключом 84, его рамку, по рамке определяю центр объекта, пересчитываю центр в пикселы и пытаюсь вывести объект в центр окна:
Я никак не могу сообразить, как увязать пиксельный центр объекта с самим окном документа. Его параметры известны
и с размерами самой картинки.
Тема - в продолжение соседней темы о удалении объектов и обновлении картинки.
Итак я получаю объект с ключом 84, его рамку, по рамке определяю центр объекта, пересчитываю центр в пикселы и пытаюсь вывести объект в центр окна:
| Код |
|---|
HOBJ info = mapCreateObject(FMap, 1, IDFLOAT2, 0); hObj = mapSeekObjectInList(FMap, FMap, info, 1, 84); mapObjectFrame(hObj, &hFrame); mapFreeObject(info); //------------------------------------------------------------------------- double cx = (hFrame.X1 + hFrame.X2) / 2; double cy = (hFrame.Y1 + hFrame.Y2) / 2; mapPlaneToPicture(FMap, &cx, &cy); int x = cx; int y = cy; mapSetViewScale(FMap, &x, &y, 50000.0); // вот тут никакой реакции RedrawMap(); // это PostMessage... |
Я никак не могу сообразить, как увязать пиксельный центр объекта с самим окном документа. Его параметры известны
| Код |
|---|
::GetWindowRect(FParm->DocHandle, &winRect); // абсолютные на дисплее ::GetClientRect(FParm->DocHandle, &docRect); // относительные |
