указать преобразование разрешения - PullRequest
0 голосов
/ 14 июля 2011

Я использую оборудование для определения взгляда, и у меня возникли некоторые проблемы с числовым значением. Сначала координаты работают от (0,0) [верхний левый угол экрана] до (1,1) [нижний правый угол экрана]. Когда я смотрю в верхний левый угол экрана, система поднимает (0,35,0,30), когда я смотрю в нижний правый угол, система поднимает (0,65, 0,80). Причина, по которой она собирает эти значения вместо (0,0) и (1,1), потому что разрешение экрана 1600x900, но мое приложение занимает только часть экрана в (817x500). Мой вопрос заключается в том, как я могу преобразовать фактические числа, такие как (0,35,0,30) в место на экране, например (400,200), учитывая, что окна моего приложения (817x500) ??

Я использую VB6.

Ответы [ 2 ]

2 голосов
/ 15 июля 2011
  • Screen.Width и Screen.Height возвращает ширину и высоту всего экрана.
  • Свойства формы Ширина и Высота возвращают ширину и высоту вашей формы frm. Это внешние размеры, включая границы и строку заголовка.

Попробуйте добавить что-то подобное в код формы (воздушный код)

Sub GazeToForm( ByVal gazeX As Double, ByVal gazeY As Double, _
  ByRef frmX As Double, ByRef frmY As Double) 

  frmX = (gazeX * Screen.Width) - Me.Left 
  frmY = (gazeY * Screen.Height) - Me.Top 

End Sub

Все эти координаты и размеры указаны в twips , как и , как обычно в VB6 .

1 голос
/ 14 июля 2011

Вы можете написать ScreenWidth * x - Window.Left

...