Информация об изменениях

Сообщение Re: block Move Widget от 30.11.2018 12:25

Изменено 30.11.2018 12:32 Evgeniy Skvortsov

Re: block Move Widget
Здравствуйте, arfaa, Вы писали:

A>Добрый день,коллеги программисты!

A>Подскажите пожалуйста, имеется окно, которое таскается за любую часть, мне нужно запретить перетаскивать окно, к примеру, если курсор по y > 20,то есть таскать я должен уметь только за верхнюю часть. Как это реализовать, не могу понять и разобраться

Насколько я помню, такая фишка (таскание окна за любую часть) реализуется как обработка сообщения WM_NCHITTEST и возврат HT_CAPTION, то есть что бы винда думала, что клик происходит на заголовке.
Ну соответственно, в обработчике проверяй ограничения для Y и возвращай HT_CAPTION только когда нужно.
Re: block Move Widget
Здравствуйте, arfaa, Вы писали:

A>Добрый день,коллеги программисты!

A>Подскажите пожалуйста, имеется окно, которое таскается за любую часть, мне нужно запретить перетаскивать окно, к примеру, если курсор по y > 20,то есть таскать я должен уметь только за верхнюю часть. Как это реализовать, не могу понять и разобраться

Насколько я помню, такая фишка (таскание окна за любую часть) реализуется как обработка сообщения WM_NCHITTEST и возврат HTCAPTION, то есть что бы винда думала, что клик происходит на заголовке.
Ну соответственно, в обработчике проверяй ограничения для Y и возвращай HT_CAPTION только когда нужно, в противном случае HTCLIENT.

Координаты x и y получаются так:
xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam);