Mouseover bei einem Bitmap

pauleheister

Grünschnabel
Hallo

ich habe folgendes Problem:

Ich habe ein Bitmap in Form einer Deutschlandkarte. Jetzt möchte ich das ein Kontextmenü angezeigt wird wenn ich die Maus über ein Bundesland bewege.
Da ich mit Bitmaps bisher nicht gearbeitet habe, stehe ich vor einem Rätsel.
Für Tipps und Lösungvorschläge wäre ich sehr dankbar.
Ach ja das ganze wird mit VB.net 2002 programmiert.

Schönen Gruß

Paul
 
pauleheister hat gesagt.:
Ach ja das ganze wird mit VB.net 2002 programmiert.
--> Falsches Forum. Hier ist das VB-Forum.
Man sollte mal einen als wichtig markierten Thread erstellen, in dem erklärt wird, dass hier nicht das VB.Net-Forum ist.
Langsam nervt das echt.
@pauleheister: nichts gegen dich, du bist ja bloß einer von vielen, die sich im Forum irren.
 
@Shakie

Also so wie ich das sehe ist VB.net auch eine VB Version. Und es ist auch eine VB spezifische Frage und keine .net spezifische Frage.
Nichts gegen dich, das ist nur meine Sichtweise.
Ach ja und was soll dann der Thread über ein VB.NET ebook, der sogar von einem Moderator ist. Also so falsch kann ich wohl doch nicht sein.

Gruß

Paul
 
Zuletzt bearbeitet:
Also gut, zu deinem Problem:
da fällt mir nichts sinnvolles ein außer das hier:
du erstellst zwei Bilder, einmal dein Deutschlandbild und dann nochmal ein Bild, in dem jedes Bundesland eine andere Farbe hat. Dieses Bild machst du aber für den User unsichtbar, es sollte aber exakt die gleiche Größe wie das sichtbare Bild haben. Wenn sich die Maus auf dem sichtbaren Bild bewegt, dann ermittelst du die Farbe an der gleichen X/Y-Position auf dem unsichtbaren Bild. Wenn du die Farbe hast, dann weißt du auch auf welchem Bundesland sich der Mauszeiger befindet.
Zum ermitteln der Pixelfarbe würde ich dir die API GetPixel empfehlen, da sie wesentlich schneller als die Point-Methode der PictureBox arbeitet.

Edit: Die API bringt dir ja gar nichts, merk ich grad, da du ja VB.Net verwendest.....schau, hast mich ganz verwirrt! Aber in VB.Net sollte es sicherlich eine effiziente Farbermittlungsfunktion geben, hab mich da noch nicht so eingearbeitet.

Edit: So, hier ein VB.Net-Codebeispiel:
Code:
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        Dim MeinBild As New Bitmap("Deutschland.jpg")
        Dim BundeslandUnterPixel As Integer = MeinBild.GetPixel(e.X, e.Y).ToArgb
        Select Case BundeslandUnterPixel
            Case System.Drawing.Color.Red.ToArgb
                'Farbe Rot --> Land 1
            Case System.Drawing.Color.Blue.ToArgb
                'Farbe Blau --> Land 2
                'usw...
        End Select
    End Sub
Erstelle weitere Threads zu VB.Net bitte im Net-Forum. Danke.
 
Zuletzt bearbeitet:
Coole Idee.

Besten Dank auch.
Obwohl ich immer noch der Meinung bin es ist mit welcher VB Version ich programmieren würde, also kann ich das auch hier reinschreiben. Na gut lassen wir das, da haben wir einfach verschiedene Ansichten.

Nochmals Danke so ein Denkanstoss hat mir gefehlt.

Gruß

Paul
 
Zurück