привязка формы к краям экрана

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

привязка формы к краям экрана

Сообщение HotKitten » 16.06.2005 (Чт) 23:36

а как сделать привязку формы к краям экрана, как у winamp'a
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 17.06.2005 (Пт) 7:20

Лови WM_Move, и если me.left < 0 или me.top < 0me.left + me.width > screen.width или me.top + me.height > screen.height возращай false, или что-то в этом роде. Ты это имееш ввиду ?
الفيجوال بيسك الرابح

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 17.06.2005 (Пт) 8:29

GM писал(а):Лови WM_Move, и если me.left < 0 или me.top < 0me.left + me.width > screen.width или me.top + me.height > screen.height возращай false, или что-то в этом роде. Ты это имееш ввиду ?


Похоже примерно это.
Обычно еще небольшой скачок делают - такой эффектик прилипания к краю экрана. Вообще нечто подобное делал давно, когда игрался, - обошелся тогда безо всякого API. Вот, нашел свой древний примерчик в интернете:

http://www.vbnet.ru/samples/zip/afclock.zip
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Alexander N. Samarin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 397
Зарегистрирован: 05.03.2005 (Сб) 20:59
Откуда: Интернат 18 (СУНЦ МГУ), комната 214А, кровать посередине

Сообщение Alexander N. Samarin » 17.06.2005 (Пт) 10:26

Где-то я это уже постал ........
На это не смотрите! Это не подпись!!!!!!

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 18.06.2005 (Сб) 1:01

me.left < 0 или me.top < 0 - понятно
а вот me.left + me.width > screen.width или me.top + me.height > screen.height писать так же как и в первом случае? а то с screen.width я еще не сталкивался
Andrey Fedorov в твоём примерчике конечно красивые часики, но привязка мне там не понравилась - нельзя двигать форму по краю экрана
Изображение

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 18.06.2005 (Сб) 7:55

Да так же, в вб есть глобальный объект Screen. И у него есть свои свойства и методы, одно из свойств Width. Так что пиши просто Screen.Width.
الفيجوال بيسك الرابح

HotKitten
Дятил
Дятил
Аватара пользователя
 
Сообщения: 400
Зарегистрирован: 24.01.2005 (Пн) 21:48
Откуда: из дома

Сообщение HotKitten » 19.06.2005 (Вс) 12:42

НЕТ ВСЁ ТАКИ НЕ ПОНЯЛ, МОЖНО ЧУТЬ - ЧУТЬ ПОПОДРОБНЕЕ
Код: Выделить всё
Dim cx As Single, cy As Single, dx As Single, dy As Single
Dim bDrag As Boolean

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    bDrag = True
    dx = X: dy = Y: cx = Me.Left: cy = Me.Top
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If bDrag Then
        cx = cx + X - dx: cy = cy + Y - dy
        Me.Move cx, cy
    End If
    If Me.Left < 0 Then bDrag = False '''''''''''''''Чё то я не то сделал
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
bDrag = False
End Sub
Изображение


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

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

Сейчас этот форум просматривают: Google-бот и гости: 168

    TopList