Прицепись "зараза"

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Прицепись "зараза"

Сообщение VERITAS » 18.04.2005 (Пн) 18:46

Здраствуйте товарищи программеры!
Я просто "волосы на голове рву" :twisted:
Не могу понять, каким образом привязать одну форму, к другой, чтобы та, вторая, двигалась СИНХРОННО с первой, но не использовав Timer'a, потому что скорость работы таймера не позволяет добиться синхронности.
Где я такое видел? - Да в нашем любимом Winamp'e !!! Какие у кого есть мысли. :?:
No comments ...

step
Бывалый
Бывалый
 
Сообщения: 217
Зарегистрирован: 03.08.2004 (Вт) 16:19

Сообщение step » 18.04.2005 (Пн) 18:56

Ну это зависит от того как ты двигаешь, если цепляться за форму, то обраб. моус ап, а если за Caption, то через таймер, просто поставь в таймере, если форма1 не вплотную с формой2- прилепить, а если в плотную то exit sub. И всё будет ОК.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 18.04.2005 (Пн) 18:56

Если кратко: лови WM_MOVE.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 18:59

БЛИН! НА

Модуль:

Код: Выделить всё
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const WM_MOVE = &H3
Public Const GWL_WNDPROC = -4
Public OldWinProc As Long
Public OldWinProc2 As Long

Public Function MyWindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_MOVE Then
    Form2.Move Form1.Left + Form1.Width, Form1.Top
End If
MyWindowProc = CallWindowProc(OldWinProc, hw, uMsg, wParam, lParam)
End Function


Форма:

Код: Выделить всё
Private Sub Form_Load()
SetWindowLong Form2.hwnd, GWL_WNDPROC, OldWinProc2
OldWinProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf MyWindowProc)
End Sub


А вобще запомни, пригодится в жизни:

СУЩЕСТВУЕТ ПОИСК!!!
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 19:00

В последний раз даю развернутый ответ...

В последствии буду посылать в пять букв
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 18.04.2005 (Пн) 19:06

kirrun, только что рылся в поиске и наткнулся на твой вопрос - ответ в http://bbs.vbstreets.ru/viewtopic.php?t=2954&highlight=%CF%D0%C8%C2%DF%C7%CA%E0+%D4%CE%D0%CC%DB
Так что не злись, просто не успел пропостить. А ведь сам когда-то спрашивал :wink:
No comments ...

VERITAS
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 12.12.2004 (Вс) 20:31

Сообщение VERITAS » 18.04.2005 (Пн) 19:06

И Спасибо за помощь :!: :!: :!:
No comments ...

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 18.04.2005 (Пн) 19:46

VERITAS

Гы :D А я не злюсь.. Просто потрудись сначала искать, а потом спрашивать =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 171

    TopList