Таскаем окошки
Всем, я думаю, знаком метод перетаскивания окошек с помощью "магического числа" :), то бишь:
ReleaseCapture();
Perform(WM_SYSCOMMAND,0xF012,0);
Теперь проблема:
Мне нужно, чтобы при перетаскивании дочернего окна по полю родительского, нельзя было даже частично выташить первое за пределы последнего :)
При этом ClipCursor, очевидно, использовать нельзя, т.к. координаты мыши ни одно из окон не ловит (было выполнено ReleseCapture()).
Можно что-нибудь сделать в данной ситуации? Или все-же необходимо реализовать другой метод перетаскивания?
Спасибо.
Цитата:
Originally posted by Бешеный кролик
Можно что-нибудь сделать в данной ситуации? Или все-же необходимо реализовать другой метод перетаскивания?
Можно что-нибудь сделать в данной ситуации? Или все-же необходимо реализовать другой метод перетаскивания?
Таскать MDI-окно внутри родителя?
Цитата:
Originally posted by smartsoft
Таскать MDI-окно внутри родителя?
Таскать MDI-окно внутри родителя?
Нет, MDI-шный интерфейс к моей задаче никак не подходит.
Просто нужно, чтобы внутри одной панельки плавала и растягивалась другая (я это уже сделал), но так, чтобы когда ее мышкой тащишь (а тащишь не за Caption, а за произвольное поле) нельзя было бы ее кусок (например, тот же заголовок) запихнуть вне рабочей области родительского окна.
Вот. Кто-ниблудь чего-нибудь понял?
Цитата:
Originally posted by Бешеный кролик
Просто нужно, чтобы внутри одной панельки плавала и растягивалась другая (я это уже сделал), но так, чтобы когда ее мышкой тащишь (а тащишь не за Caption, а за произвольное поле) нельзя было бы ее кусок (например, тот же заголовок) запихнуть вне рабочей области родительского окна.
Просто нужно, чтобы внутри одной панельки плавала и растягивалась другая (я это уже сделал), но так, чтобы когда ее мышкой тащишь (а тащишь не за Caption, а за произвольное поле) нельзя было бы ее кусок (например, тот же заголовок) запихнуть вне рабочей области родительского окна.
А отрабатывать событие WM_GETMINMAXINFO не пробовал?