Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Обработка сообщений в Delphi



Сообщения, поступающие от мыши.

Мышь может порождать много сообщений, всего 22! Однако большинство из них вы можете благополучно проигнорировать, передав эти сообщения «всеядной» функции DefWindowProc. Сообщения, поступающие от мыши, содержат информацию о текущем расположении курсора, о его расположении в момент, когда вы нажимаете на клавиши мыши, и другую аналогичную информацию.

Куда попадают сообщения от мыши?

Существует два режима, определяющих два способа распределения сообщений от мыши. В первом режиме, который установлен по умолчанию, сообщения от мыши направляются функции окна, расположенного под курсором мыши. Если в главном окне приложения создано дочернее окно и курсор мыши располагается над дочерним окном, то сообщения мыши попадут в функцию дочернего окна, но не в функцию главного окна приложения. Это же касается и временных (pop-up) окон. Во втором режиме окно может захватить мышь для монопольного использования. В этом случае функция этого окна будет всегда получать все сообщения мыши, независимо от расположения курсора мыши. Для того чтобы захватить мышь, приложение должно вызвать функцию SetCapture:

*HWND WINAPI SetCapture(HWND hwnd);

Параметр hwnd функции указывает идентификатор окна, которое будет получать все сообщения от мыши вне зависимости от расположения курсора.

Функция SetCapture возвращает идентификатор окна, которое захватывало мышь до вызова функции или NULL, если такого окна не было.

Функция ReleaseCapture возвращает нормальный режим обработки сообщений мыши.

*void WIN API GetCapture;

Эта функция не имеет параметров и не возвращает никакого значения.

Функция GetCapture позволяет определить идентификатор окна, захватившего мышь:

HWND WINAPI GetCapture(void)

Если ни одно окно не захватывало мышь, эта функция возвратит значение NULL.

В любом случае на получении сообщений от мыши никак не влияет факт приобретения или потери окном фокуса ввода.





Дата публикования: 2015-02-03; Прочитано: 201 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...