PDA

Просмотр полной версии : WM_SIZE



Loki
02.12.2004, 13:39
Как правильно обработать WM_SIZE на MFC, что бы все мои контролы в окне тоже ресайзились?

Romeo
02.12.2004, 14:50
В WTL для этого есть очень удобный класс CDialogResizer. Он всё делает автоматически. Возможно такой класс есть и для MFC, но я про него не слышал. Для MFC напрашивается решение "в лоб" (если класса-ресайзера не найдётся): в хэндлере OnSize делаем для всех контролов MoveWindow, параметры подбираются таким образом, чтобы ресайзин осуществлялся в соответствии с желанием программиста.

Loki
03.12.2004, 19:12
Так вот в том то и проблема, что MoveWindow у меня не получилось, бо он всё двигает относительно экранных координат, да и ваще там странно как-то всё сделано...
А CDialogResizer, такого не нашёл...
Может у кого есть рабочий пример? Мне бы куска кода хватило. :)

Romeo
03.12.2004, 19:50
Для преобразования координат используй ClientToScreen, ScreenToClient.

Loki
06.12.2004, 15:50
Ага, помогло.
Спасибо.