Сообщение Re: block Move Widget от 30.11.2018 12:25
Изменено 30.11.2018 12:33 Evgeniy Skvortsov
Re: block Move Widget
Здравствуйте, arfaa, Вы писали:
A>Добрый день,коллеги программисты!
A>Подскажите пожалуйста, имеется окно, которое таскается за любую часть, мне нужно запретить перетаскивать окно, к примеру, если курсор по y > 20,то есть таскать я должен уметь только за верхнюю часть. Как это реализовать, не могу понять и разобраться
Насколько я помню, такая фишка (таскание окна за любую часть) реализуется как обработка сообщения WM_NCHITTEST и возврат HTCAPTION, то есть что бы винда думала, что клик происходит на заголовке.
Ну соответственно, в обработчике проверяй ограничения для Y и возвращай HT_CAPTION только когда нужно, в противном случае HTCLIENT.
Координаты x и y получаются так:
A>Добрый день,коллеги программисты!
A>Подскажите пожалуйста, имеется окно, которое таскается за любую часть, мне нужно запретить перетаскивать окно, к примеру, если курсор по y > 20,то есть таскать я должен уметь только за верхнюю часть. Как это реализовать, не могу понять и разобраться
Насколько я помню, такая фишка (таскание окна за любую часть) реализуется как обработка сообщения WM_NCHITTEST и возврат HTCAPTION, то есть что бы винда думала, что клик происходит на заголовке.
Ну соответственно, в обработчике проверяй ограничения для Y и возвращай HT_CAPTION только когда нужно, в противном случае HTCLIENT.
Координаты x и y получаются так:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Re: block Move Widget
Здравствуйте, arfaa, Вы писали:
A>Добрый день,коллеги программисты!
A>Подскажите пожалуйста, имеется окно, которое таскается за любую часть, мне нужно запретить перетаскивать окно, к примеру, если курсор по y > 20,то есть таскать я должен уметь только за верхнюю часть. Как это реализовать, не могу понять и разобраться
Насколько я помню, такая фишка (таскание окна за любую часть) реализуется как обработка сообщения WM_NCHITTEST и возврат HTCAPTION, то есть что бы винда думала, что клик происходит на заголовке.
Ну соответственно, в обработчике проверяй ограничения для Y и возвращай HT_CAPTION только когда нужно, в противном случае результат DefWindowProc
Координаты x и y получаются так:
A>Добрый день,коллеги программисты!
A>Подскажите пожалуйста, имеется окно, которое таскается за любую часть, мне нужно запретить перетаскивать окно, к примеру, если курсор по y > 20,то есть таскать я должен уметь только за верхнюю часть. Как это реализовать, не могу понять и разобраться
Насколько я помню, такая фишка (таскание окна за любую часть) реализуется как обработка сообщения WM_NCHITTEST и возврат HTCAPTION, то есть что бы винда думала, что клик происходит на заголовке.
Ну соответственно, в обработчике проверяй ограничения для Y и возвращай HT_CAPTION только когда нужно, в противном случае результат DefWindowProc
Координаты x и y получаются так:
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);