Вверх ↑
Этот топик читают: Гость
Ответов: 1309
Рейтинг: 48
#1: 2013-09-09 18:50:05 ЛС | профиль | цитата
Как можно запретить перетаскивание окна за заголовок? Нужно чтобы его можно было свернутьразвернуть, но не перемещать.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2013-09-09 19:01:10 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:33:28
карма: 0

0
Ответов: 5446
Рейтинг: 323
#3: 2013-09-09 19:05:49 ЛС | профиль | цитата
Без насилия над IC - никак. Суть такова: надо повесить свой обработчик на событие WM_SYSCOMMAND, и если (wParam & 0xFFF0 == SC_MOVE) - вернуть False, в противном случае передать сообщение обычному обработчику.
карма: 1

0
Ответов: 1309
Рейтинг: 48
#4: 2013-09-09 19:11:49 ЛС | профиль | цитата
Стандартный пример не годится - там окно нестандартное, без заголовка нормального. iarspider, а как можно это реализовать? Нашел много советов, сводятся они к тому что надо отлавливать сообщения чужого окна и подменять их своими.

http://forum.sources.ru/index.php?showtopic=310448
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 196
Рейтинг: 43
#5: 2013-09-09 19:12:19 ЛС | профиль | цитата
Если устраивает что форма по центру, то так.
code_31785.txt
карма: 2

0
файлы: 1code_31785.txt [144B] [180]
Ответов: 1309
Рейтинг: 48
#6: 2013-09-09 19:13:35 ЛС | профиль | цитата
halt, не свою, чужую форму. Но спасибо.)
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 196
Рейтинг: 43
#7: 2013-09-09 19:18:58 ЛС | профиль | цитата
Ну если чужую, тогда только через хук на сообщения как сказал iarspider.
карма: 2

0
Гость
Ответов: 17029
Рейтинг: 0
#8: 2013-09-09 19:23:44 правка | ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-21 12:33:28
карма: 0

0
Ответов: 1309
Рейтинг: 48
#9: 2013-09-09 21:37:31 ЛС | профиль | цитата
Мне это нужно вот для чего - делаю докер для опред. программ (см схему), но у нее есть одна проблема - если свернуть окно докнутой проги, затем сдвинуть мышью хоть на миллиметр, затем ее "раздочить", то при следующем "придочивании" если ее свернуть, то она исчезает. И это лечится только перезапуском проги. Вот я и хочу запретить перемещение свернутой проги.


code_31787.txt
------------ Дoбавленo в 19.28:
г. ость, спасибо, интересное решение, но с этим окном вообще ничего не сделаешь. А надо оставить активным кнопки разворачиваниясворачивания, закрытия.
------------ Дoбавленo в 21.37:
Пока что решил задачу чисто дубовым методом - прога постоянно проверяет хендлы окон в доке. Если одно из них свернуто - оно тотчас делается невидимым, с него снимется скриншот и помещается на кнопку. При нажатии на кнопку она выдает сохраненый хендл и восстанавливает окно. А то я хотел уж было месседжбокс писать с посланием "Пожалуйста, не двигайте мышом свернутые окна! Иначе будет хуже.")))
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
файлы: 1code_31787.txt [3.7KB] [350]
9
Сообщение
...
Прикрепленные файлы
(файлы не залиты)