Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.242.165] |
|
Сообщ.
#1
,
|
|
|
На форме посекундный таймер. Запускаю, перемещаю форму случайно по экрану, на выводе вижу:
Form_MouseDown: -3632, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -3632, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -3632, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -3632, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -1320, 19 Form_MouseDown: -1320, 19 ... Т.е. X получает только 2 значения, Y не меняется. Почему? Клик происходит в постоянной точке (экрана же?), форма перемещается - координаты относительно формы должны постоянно меняться. Private Const WM_LBUTTONDOWN = &H201 Private Const WM_LBUTTONUP = &H202 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Debug.Print "Form_MouseDown: " & CStr(X / 15) & ", " & CStr(Y / 15) End Sub Private Sub Timer1_Timer() Dim lRet As Long lRet = 50 * 65536 + 50 'lParam: hiword= y-coordinate, loword=x-coordinate SendMessage Me.hWnd, WM_LBUTTONDOWN, 0&, lRet SendMessage Me.hWnd, WM_LBUTTONUP, 0&, lRet End Sub |
Сообщ.
#2
,
|
|
|
Цитата BlackSun @ Клик происходит в постоянной точке (экрана же?) Form_MouseDown обрабатывает в координатах формы. В какой точке происходит клик? |
Сообщ.
#3
,
|
|
|
Цитата B.V. @ относительно ли экрана, относительно ли формы - результат непонятен. Относительно экрана - результат должен быть переменным, относительно формы - результат должен быть X=50; Y=50. В какой точке происходит клик? |
Сообщ.
#4
,
|
|
|
Прикрепи сюда тестовый проект.
|
Сообщ.
#5
,
|
|
|
Цитата B.V. @ Прикрепи сюда тестовый проект. Код же выложил. Это всё. |
Сообщ.
#6
,
|
|
|
Никто не видит в чём проблема, такой простой код поставил всех в тупик?
|
Сообщ.
#7
,
|
|
|
Всем спасибо, форум бесполезен. Сам разобрался.
|