Страница: 1 |
Страница: 1 |
Вопрос: Подскажите еще раз плиз
Добавлено: 29.07.10 19:21
Автор вопроса: I'm
Нахожу хэндл окна, и хочу с ним сделать какую либо операцию (сдвинуть, переместить...вообщем не важно
Public Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Integer, ByVal yPoint As Integer) As Long
Public Structure POINTAPI
Dim X As Integer
Dim Y As Integer
End Structure
Private CurPos As POINTAPI
Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" _
(ByVal q1 As Integer, ByVal q2 As Integer, ByVal q3 As Integer, ByVal q4 As Integer) As Long
Declare Function ReleaseCapture Lib "user32.dll" () As Integer
GetCursorPos(CurPos)
KillWin = WindowFromPoint(CurPos.X, CurPos.Y)
ReleaseCapture()
SendMessage(KillWin, &HA1, 2, 0)
End Sub
Но ничего не выходит...
Выкидывает ошибку
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #1
Добавлено: 29.07.10 19:23
ну и переменная глобальная..забыл
[source Dim KillWin As Long
[/source]
Номер ответа: 2
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #2
Добавлено: 29.07.10 19:35
как минимум, неверная декларация API у тебя.. для начала тебе не мешало бы разобраться с типами данных в НЕТ
Номер ответа: 3
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #3
Добавлено: 29.07.10 19:51
тут SendMessage(KillWin, &HA1, 2, 0) - чтобы не менял, все равно выдает ошибку туже
работает если только вот так - SendMessage(Me.Handle, &HA1, 2, 0)
Номер ответа: 4
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #4
Добавлено: 29.07.10 20:04
ты вообще понимаешь что я тебе говорю??? у тебя НЕВЕРНАЯ ДЕКЛАРАЦИЯ!!!
а когда неверная декларация ты что угодно меняй - один хрен работать не будет..
Номер ответа: 5
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #5
Добавлено: 29.07.10 20:10
EROS
А что именно неправильно?
Если не использовать SendMessage(KillWin, &HA1, 2, 0) - то все прекрасно работает, хэндл находится
Находил хэндл и сворачивал нужное окно....значит правильно работает , верно !?
Вот:
все работает
(это в докозательство)
Повторюсь...Ошибку выдает на функции SendMessage
Однако, эта функция SendMessage работает тоже хорошо, если например делаю вот так : SendMessage(Me.Handle, &HA1, 2, 0) или так: (Textbox1.Handle, &HA1, 2, 0)
А если передаю туда хэндл другого окна (не своей формы и ее контролов) SendMessage(KillWin, &HA1, 2, 0) - выскакивает ошибка
Номер ответа: 6
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #6
Добавлено: 29.07.10 20:12
сори
5 строчка
If KillWin = 0 Then
Номер ответа: 7
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #7
Добавлено: 29.07.10 20:19
ошибка на SendMessage
Переполнение в результате выполнения арифметической операции
Номер ответа: 8
Автор ответа:
I'm
Вопросов: 9
Ответов: 35
Профиль | | #8
Добавлено: 29.07.10 20:49
ребятульки, есть мысли ??
Номер ответа: 9
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #9
Добавлено: 29.07.10 21:05
А что именно неправильно?
повторяю еще раз - ДЕКЛАРАЦИЯ API, тебе это о чем то говорит?