| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Изменение размеров окна |
| Автор: ZufuS 18.12.2007, 22:35 |
| Надо сделать, чтобы при изменении размеров окна, курсор с ухваченной границей сдвигался на N пикселей в сторону движения мыши. |
| Автор: baldina 18.12.2007, 22:42 |
| А сейчас он на сколько двигается? |
| Автор: ZufuS 18.12.2007, 22:51 |
На сколько и мышка. |
| Автор: Mihhail 18.12.2007, 23:12 |
| Т.е. что бы не плавно изменялся размер, а рывками по N пикселей? |
| Автор: ZufuS 18.12.2007, 23:33 | ||
Да |
| Автор: Mihhail 18.12.2007, 23:40 | ||
Тебе нужно сообщение WM_SIZING оно передаётся еще до изменения самого окна, в lparam содержится указатель на структуру RECT значения в которой можно поменять на собственные.
|
| Автор: ZufuS 18.12.2007, 23:59 |
| По-моему это не совсем то, что я имел в виду, если я правильно понял, размер окна здесь изменится, когда курсор отодвинится от границы на N пикселей, а я хотел чтобы при перемещении курсора на один пиксель, он перемещался на N пикселей вместе с ухваченной границей. |
| Автор: Mihhail 19.12.2007, 00:09 |
| Тогда при каждом WM_SIZING проверяем на сколько пикселей разница между границей и курсором умножаем на N соответственно изменяя значения в GrRc и перемещаем курсор в нужную координату - SetCursorPos . |
| Автор: ZufuS 19.12.2007, 14:38 | ||
В общем предложенный вариант тоже подойдёт, но почему-то не работает
не оказывает влияния на изменение размеров окна |
| Автор: Mihhail 19.12.2007, 17:47 |
| Ты один момент не заметил: замени break; на return (1); т.к. при в твоём случае вызывается стандартный обработчик сообщения. А возвращая TRUE значение показываешь что программа обрабатывает это собщение. |
| Автор: ZufuS 19.12.2007, 17:56 |
| То же самое |
| Автор: ZufuS 19.12.2007, 22:28 | ||
хорошо бы код вместо комментария увидеть, уже много времени потратил, чтобы разобраться, что-то не сходится. А оно у меня ограничено. |
| Автор: 586 19.12.2007, 22:52 | ||
ЭТО? |
| Автор: ZufuS 19.12.2007, 23:03 |
| Похоже, но надо чтобы размер ширины клиентской области всегда был кратен N, а по высоте фиксирован. |
| Автор: Mihhail 20.12.2007, 16:01 | ||
|
| Автор: WM_SASHA 30.1.2008, 09:43 |
| ой извеняюсь, не туда запостил |