Расположение пользовательской формы на экране - VBA
Формулировка задачи:
Подскажите, пожалуйста. Почему данный код
открывает форму не в указанных координатах, а в более больших (примерно 265 / 570). Причем, если указать 0 / 0, то форма отобразится корректно в верхнем левом углу, а чем больше будут координаты, тем дальше(правее и ниже) от них уйдет форма. Единственная мысль, что эти свойства нужно указывать не в пикселях, а в чем то другом. В чем тогда?
ps возможно, кому покажется это смешным, но эту проблему я гуглю-решаю уже часов так 5.
Решение задачи: «Расположение пользовательской формы на экране»
textual
Листинг программы
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDc As Long, ByVal nIndex As Long) As Long Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDc As Long) As Long Private Const LOGPIXELSX = 88 ' Logical pixels/inch in X Private Const LOGPIXELSY = 90 ' Logical pixels/inch in Y Private Sub UserForm_Initialize() Dim hDc As Long Dim lngRetVal As Long Dim varPixToInchX As Variant Dim varPixToInchY As Variant hDc = GetDC(0) varPixToInchX = GetDeviceCaps(hDc, LOGPIXELSX) varPixToInchY = GetDeviceCaps(hDc, LOGPIXELSY) Debug.Print varPixToInchX Debug.Print varPixToInchY lngRetVal = ReleaseDC(0, hDc) End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д