2012-10-01 1 views
1

나는 이것에 대해 잘 모릅니다. PNG가 있는데 1000x1000 픽셀입니다. 나는 5 각형 모양이며 각 부분마다 상자가 있습니다. 내가하고 싶은 것은 PNG의 일부인 각 상자를 클릭 가능한 상자로 만드는 것입니다. 이 작업을 수행하는 방법을 연구했지만이 질문에 대한 답을 찾을 수 없었습니다. 미리 감사드립니다.이미지 핫스팟 만들기

+0

이 vba 또는 vb.net입니까? –

+0

저는 Visual Studio 2010이며 시각적 인 기본 Windows 응용 프로그램을 만듭니다. – user1124585

답변

0

png를 클릭 할 때 마우스 이벤트 인수를 확인하여이를 수행 할 수 있어야합니다.

http://msdn.microsoft.com/en-us/library/system.windows.forms.mouseeventargs.aspx

Here 이벤트 인수 및 방법 함수 나 서브 루틴에 전달하는 방법에 대한 자습서입니다.

나는 this은 당신이하려고하는 정확히 무엇이라고 생각 ... 마지막으로 웹 사이트에

Private Sub PictureBox1_MouseDown(_ 
    ByVal sender As Object, _ 
    ByVal e As System.Windows.Forms.MouseEventArgs) _ 
    Handles PictureBox1.MouseDown 
    Dim myPicBox As PictureBox = sender 
    Select Case e.Y/myPicBox.Height 
     Case Is > 2/3 
     Debug.WriteLine("It's in the bottom third") 
     Case Is > 1/3 
     Debug.WriteLine("It's in the middle third") 
     Case Else 
     Debug.WriteLine("It's in the top third") 
    End Select 
End Sub 

- 기준.

+0

감사합니다. 최대한 빨리 구현하려고 시도합니다 – user1124585

0

당신은이 같은 방법을 포함합니다 MouseMove 이벤트 및 MouseDown 또는 MouseClick 이벤트를 처리하고 Cursor 사용하여 특정 사각형 내에 있는지 확인할 수 있습니다. 여러 핫 스폿을 처리하려면 확장해야합니다.

Public Class Form1 
    Dim hotspot1 As Rectangle = New Rectangle(25, 25, 50, 50) 

    Private Sub PictureBox1_MouseClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick 
     If hotspot1.Contains(e.X, e.Y) Then 
      Beep() 
     End If 
    End Sub 


    Private Sub PictureBox1_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove 
     If hotspot1.Contains(e.X, e.Y) Then 
      If Cursor <> Cursors.Hand Then Cursor = Cursors.Hand 
     Else 
      If Cursor <> Cursors.Default Then Cursor = Cursors.Default 
     End If 
    End Sub 

End Class 
+0

마크, 저에게 필요한 것이 더 정확합니다. 나는 PNG로 "잘라내는"방법을 알아 내려고 노력하고 있었고 그것은 나에게 전혀 효과가 없었습니다. – user1124585

+0

@ user1124585 도움을 주셔서 감사합니다. –