Access 2002

Получение информации о границе формы


После вызова процедуры GetScreenlnfo процедура Property Set свойства Form вызывает процедуру GetClientOffsets (из того же модуля класса Formlnfo). Возможно, вам потребуется соотнести координаты какого-нибудь объекта на экране с координатами элемента управления в форме, а для этого необходимо знать ширину левой и верхней границ формы. На  7.26, для чего нужна эта информация: Access возвращает координаты элемента управления относительно внутренней границы клиентской области формы, так что для получения его координаты относительно экрана нужно не только сложить соответствующие координаты элемента управления и формы, но и прибавить к ним ширину границы формы.

Ширину границ формы определяет процедура GetCl ientOffsets. В ней используются две функции Windows API, а результатом ее работы является заполнение двух элементов структуры P0INTAPI, которая хранится в переменной mptClient- Offset, объявленной на уровне модуля.

О Cl ientToScreen. Эта функция получает структуру P0INTAPI и дескриптор окна. Дескриптор окна указывает функции Cl ientToScreen, какое окно вас интересует (в данном случае это свойство формы hWnd). Структура P0INTAPI содержит координаты некоторой точки относительно окна, которые вы хотите преобразовать в координаты относительно экрана. В данном случае это (0:0). По возвращении из функции Cl ientToScreen структура P0INTAPI содержит координаты той же точки относительно левого верхнего угла экрана, а не формы. Таким образом можно узнать абсолютные координаты любой точки, для которой известно ее относительное положение в окне.

О GetWindowRect. Получив дескриптор окна (в данном случае, опять-таки, формы) и структуру RECT, эта функция заполняет структуру координатами прямоугольника, ограничивающего данное окно.

Комментарии закрыты