Posted on 2008/04/09 03:52
Filed Under Programming/VB

DNS server, DNS service  

[질문]픽쳐박스(picturebox),이미지(image) 이동 방법좀 봐주세요.  | etc 2006-07-31 오후 2:22:30
 
용대건 (sunny)    번호: 246824   / 평점:  (-)  / 읽음:342

하다가 잘 안되는게 있어서 고수님들 도움좀 받을려고 올립니다.
픽쳐박스 안에 이미지 개체를 놓았구요..
픽쳐박스 안에서 이미지 개체를 드래그해서 미세하게 이동 시킬려고 합니다.

Private Sub img1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    vSavedMousePointX = X
    vSavedMousePointY = Y
   img1.Drag 1
End Sub

그래서 픽쳐박스 DragDrop 이벤트안에..

Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
   img1.Move X - vSavedMousePointX, Y - vSavedMousePointY, img1.Width, img1.Height
   img1.Drag 2  
End Sub

문제는 픽쳐박스내에서 드래그해서 움직이는 마우스위치값 (X,Y)이  이미지개체의 위치값 보다 크면 
--( 이미지 개체 사이즈값 보다 크면 ) -- 잘 되는데 ( 마우스를 드롭한 위치에 잘 놓이게 되는데) --
값이 이미지 개체 값보다 작거나 같으면--( 조금 밖에 안움직이면)--  안 움직이고 원재 자리로 되돌아 간다는 것입니다.
그래서  이미지개체 선택후 마우스 드래그 하면서 값을 보니.. 포인터가 이미지 개체를 벗어난 이후 부터 x, y 값을
인식하는 것 같더라고요...저는 약간 만 움직여도 정확한 위치에 놓이게 하고 싶은데...
어떻게 방법이 없을 까요?  도와 주세요..

 
 
[답변]DragDrop 이벤트가 자기 자신에게 일어나서 그렇습니다. 2006-07-31 오후 2:41:23
 
홍인천 (rhdgj)    번호: 246831   / 평점:  (-)  

놓은 위치가 자신의 위치라면...
DragDrop 이벤트는 컨테이너인 Picture1에서 일어나는게 아니라..
자기 자신...즉 image1 에서 일어납니다...
아래...코드를 약간 변경했습니다...
님과는....img1 이 image1으로 변경된거 외에는 바뀔게 없으니...복사해다가 고쳐서 사용하세요...^^

Dim vSavedMousePointX As Single, vSavedMousePointY As Single
Dim nOrgLeft As Long, nOrgTop As Long
Private Sub Image1_DragDrop(Source As Control, X As Single, Y As Single)
   Image1.Move nOrgLeft + X - vSavedMousePointX, nOrgTop + Y - vSavedMousePointY, Image1.Width, Image1.Height
   Image1.Drag 2
End Sub

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    vSavedMousePointX = X
    vSavedMousePointY = Y
    nOrgLeft = Image1.Left
    nOrgTop = Image1.Top
   Image1.Drag 1
End Sub

Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
   Image1.Move X - vSavedMousePointX, Y - vSavedMousePointY, Image1.Width, Image1.Height
   Image1.Drag 2
End Sub

 
 
[답변]윗분말이 마자요 2006-07-31 오후 2:47:50
 
이명하 (mhlee36)    번호: 246833   / 평점:  (-)  
 Private Sub Img1_DragDrop(Source As Control, X As Single, Y As Single)
     Img1.Move Image1.Left + (X - vSavedMousePointX), Img1.Top + (Y - vSavedMousePointY), Img1.Width, Img1.Height
   Img1.Drag 2
End Sub
이거 추가히시면 될듯
 

2008/04/09 03:52 2008/04/09 03:52

트랙백 주소 : 이 글에는 트랙백을 보낼 수 없습니다

About

by CoCo

Notice

Counter

· Total
: 877405
· Today
: 315
· Yesterday
: 61