![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Paspartu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 3.5.2007 Репутация: нет Всего: нет |
Доброго времени суток!
Ввопрос такой… как запретить перетаскивание окна, окно – HANDMADE поэтому подход не стандартный максимизируется – вручную, также вручную устанавливается его стиль – WS_MAXIMIZE, изменение размеров и перемещение – стандартно через WM_NCHITTEST, но, когда оно макс, то его можно перемещать за заголовок, вопрос как сделать запрет на перемещение в данном случае? P.S. Ловить WM_NCHITTEST (HTCAPTION) и возвращать что то типа HTNOWHERE – не прдлагать, т.к. вариант – кривой. |
|||
|
||||
| Paspartu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 3.5.2007 Репутация: нет Всего: нет |
Как то глухо...
вот вариант...
Но он мне не нравиться одним местом чую, что можно сделать как то по проще... |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
не впечатляет меня сборка велосипеда, но, в принципе и такая задача имеет право на жизнь
ну, тут смысл, надеюсь, понятен: запрещаем вызов DefWindowProc в ответ на сообщение WM_NCLBUTTONDOWN, если курсор находится над заголовком окна. почему WM_NCLBUTTONDOWN? потому что инициализация перемещения окна начинается с его захвата. Но раз уж ты так серьезно за это взялся, тогда придется и перехватывать команды системного меню, перемещать же окно можно и без помощи мыши. Добавлено через 4 минуты и 59 секунд если через WM_WINDOWPOSCHANGING, то там восстанавливать координаты не нужно, нужно просто всегда добавлять в флаги два: SWP_NOSIZE | SWP_NOMOVE, хотя и WM_WINDOWPOSCHANGING можно обойти, просто вызвав SetWindowPos с флагом SWP_NOSENDCHANGING, так что сам думай, нужно ли с этим связываться -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |