Как преобразовать координаты окна в систему координат родительского кона

Вопросы по программированию, не подходящие в другие разделы.

Модераторы: Naeel Maqsudov, C_O_D_E

Ответить
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

В оконной процедуре дочернего окна

Код: Выделить всё

GetWindowRect(Window, &WindowRectagle);
, потом WindowRectagle пересчитывается, исходя их желаемых размеров окна, потом всё в той же оконной процедуре дочернего окна

Код: Выделить всё

MoveWindow(Window, WindowRectagle.left, WindowRectagle.top, WindowRectagle.right-WindowRectagle.left, WindowRectagle.bottom-WindowRectagle.top, TRUE);
. Надо сделать, чтоб левый верхний угол оставался неподвижным.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Если прямо ответить на заголовок темы, то для того, чтобы преобразовать координаты из системы координат одного окна в систему координат другого окна, следует использовать функцию MapWindowPoints. Объяснения же в теле темы вообще непонятны и такое ощущение, что с заголовком не имеют никакой связи.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Romeo писал(а):Если прямо ответить на заголовок темы, то для того, чтобы преобразовать координаты из системы координат одного окна в систему координат другого окна
А где у меня хоть слово о координатных системах двух окон? Вопрос был о преобразовании координат самого окна в систему координат его родительского окна, так как именно в этой системе принимает координаты левого верхнего угла функция MoveWindow.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить