WM_SIZE
Модераторы: Duncon, Hawk, Romeo, Eugie
Как правильно обработать WM_SIZE на MFC, что бы все мои контролы в окне тоже ресайзились?
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
В WTL для этого есть очень удобный класс CDialogResizer. Он всё делает автоматически. Возможно такой класс есть и для MFC, но я про него не слышал. Для MFC напрашивается решение "в лоб" (если класса-ресайзера не найдётся): в хэндлере OnSize делаем для всех контролов MoveWindow, параметры подбираются таким образом, чтобы ресайзин осуществлялся в соответствии с желанием программиста.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Так вот в том то и проблема, что MoveWindow у меня не получилось, бо он всё двигает относительно экранных координат, да и ваще там странно как-то всё сделано...
А CDialogResizer, такого не нашёл...
Может у кого есть рабочий пример? Мне бы куска кода хватило.
А CDialogResizer, такого не нашёл...
Может у кого есть рабочий пример? Мне бы куска кода хватило.

- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Для преобразования координат используй ClientToScreen, ScreenToClient.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ага, помогло.
Спасибо.
Спасибо.