я не знаю как сделать чтобы при нажатии кнопки влево или вправо image or picture
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



я не знаю как сделать чтобы при нажатии... Expand / Collapse
Автор
Сообщение
12.06.2000 7:45
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 05.06.2000 5:52
Сообщ.: 3, Visits: 34
я не знаю как сделать чтобы при нажатии кнопки влево или вправо image or picture
двигались в этом направлении ! Или с мышкой тоже самое ! Куда мыш туда и фигурка! Или при нажатии кнопки мыши фиг. двигалась туда где кликнули :))
Сообщ. #522
12.06.2000 13:35
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 09.06.2000 11:25
Сообщ.: 10, Visits: 111
Для мыша:

Option Explicit

Private Const MERGEPAINT = &HBB0226
Private Const SRCAND = &H8800C6
Private Const SRCCOPY = &HCC0020
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

' Variables for positioning the image.
Private OldX As Single
Private OldY As Single
Private CurX As Single
Private CurY As Single
Private PicWid As Single
Private PicHgt As Single
Private Xmax As Single
Private Ymax As Single
Private NewX As Single
Private NewY As Single
Private Dx As Single
Private Dy As Single
Private DistToMove As Single

Private Const MOVE_OFFSET = 10

' Draw the picture at (CurX, CurY).
Private Sub DrawPicture()
' Fix the part of the image that was covered.
BitBlt picCanvas.hDC, _
OldX, OldY, PicWid, PicHgt, _
picHidden.hDC, OldX, OldY, SRCCOPY
OldX = CurX
OldY = CurY

' Paint on the new image.
BitBlt picCanvas.hDC, _
CurX, CurY, PicWid, PicHgt, _
picXMask.hDC, 0, 0, MERGEPAINT
BitBlt picCanvas.hDC, _
CurX, CurY, PicWid, PicHgt, _
picX.hDC, 0, 0, SRCAND

' Update the display.
picCanvas.Refresh
End Sub

' Save picCanvas's original bitmap bytes,
' initialize values, and draw the initial picture.
Private Sub Form_Load()
' Make the form fit the picture.
Width = (Width - ScaleWidth) + picCanvas.Width
Height = (Height - ScaleHeight) + picCanvas.Height

PicWid = picX.ScaleWidth
PicHgt = picX.ScaleHeight
Xmax = picCanvas.ScaleWidth - PicWid
Ymax = picCanvas.ScaleHeight - PicHgt
OldX = 30
OldY = 30
CurX = 30
CurY = 30

DrawPicture
End Sub

' Stop dragging.
Private Sub picCanvas_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim dist As Single

' See where to move the image.
NewX = x - PicWid / 2
NewY = y - PicHgt / 2
If NewX < 0 Then NewX = 0
If NewX > Xmax Then NewX = Xmax
If NewY < 0 Then NewY = 0
If NewY > Ymax Then NewY = Ymax

' Calculate the moving offsets.
Dx = NewX - CurX
Dy = NewY - CurY
DistToMove = Sqr(Dx * Dx + Dy * Dy)
Dx = Dx / DistToMove * MOVE_OFFSET
Dy = Dy / DistToMove * MOVE_OFFSET

' Enable the move timer.
tmrMove.Enabled = True
End Sub

' Move the image closer to its destination.
Private Sub tmrMove_Timer()
DistToMove = DistToMove - MOVE_OFFSET
If DistToMove <= 0 Then
CurX = NewX
CurY = NewY
tmrMove.Enabled = False
Else
CurX = CurX + Dx
CurY = CurY + Dy
End If

DrawPicture
End Sub
Сообщ. #526
17.06.2000 14:16
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 16.06.2000 12:44
Сообщ.: 13, Visits: 144
Можно проще:
просто когда кликнул вправо - прибавляй координату Y на шаг (image1.left=image1.left+10), влево - вычитай.
С мышкой тоже самое (используй MouseMove:X,Y)
Сообщ. #560
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl, Comanche, Alexey Spirin

Время GMT +3:00, Сейчас 11:31