Access 2002

Получение информации об экране


Процедура GetScreenlnfo получает несколько значений, необходимых для работы с экраном в Access, а именно:

О горизонтальный и вертикальный размеры экрана в пикселях — эти значения можно затем получить через свойства объекта Formlnfo, ScreenX, ScreenY, ScreenXInTwips и ScreenYInTwips;

О количество твипов на пиксель по горизонтали и вертикали — эти коэффициенты позволяют переводить координаты и размеры из пикселей (используемых в функциях Windows API) в твипы (используемые в Access) и наоборот.

Для решения стоящей перед ней задачи процедура GetScreenlnfo использует четыре функции Windows API.

О GetDC, ReleaseDC. Контекст устройства, или DC (device context), позволяет Windows взаимодействовать с заданным устройством. Чтобы получить контекст устройства для экрана, можно воспользоваться дескриптором окна рабочего стола Windows. Затем функция GetDC позволит запросить у Windows информацию об этом устройстве. После использования контекста устройства его нужно освободить с помощью функции ReleaseDC.

О GetSystemMetrics. Позволяет получать различную информацию о системе. Вы указываете, что именно вас интересует, и функция возвращает запрошенные данные. В нашем случае код запрашивает ширину и высоту полного экрана, по очереди передавая функции константы SM_CXFULLSCREEN и SM_CYFULLSCREEN. mptCurrentScreen.x – GetSystemMetrics(SM_CXFULLSCREEN) mptCurrentScreen.y – GetSystemMetrics(SM_CYFULLSCREEN)

О GetDeviceCaps. Возвращает информацию о возможностях заданного устройства. В данном случае нас интересует разрешение по вертикали и горизонтали, установленное видеодрайвером. Получив эти значения в пикселях на логический дюйм, код делит их на количество твипов в дюйме (их точно 1440) и получает количество твипов на пиксель по горизонтали и по вертикали:

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