Fragensteller
Desktophintergrund dynamisch wechseln

Frage
-
Hallo,
Ich habe mal eine Frage. Und zwar erstelle ich gerade ein Programm, wo es vier (4) Pictureboxen (PictureBox1, PictureBox2, PictureBox3 und PictureBox4) gibt. Nun möchte ich, dass wenn man z.B. auf PictureBox1 klickt, das Bild1 (Image1) als Desktophintergrund angezeigt wird, das unter "Projekt > Ressourcen >" liegt. So und wenn man dann auf PictureBox2 klcikt, das Bild Image2 das ebenfals unter "Projekt > Ressourcen" liegt, nur Image2 heißt als Desktophintergrund wird. Weis das einer vielleicht?
MFG Stephan R.
Alle Antworten
-
Hi,folgender Deklarationstext stammt nicht von mir. Ich habe ihn im Internet (auf http://www.vbarchiv.net) gefunden, kann ihn nachvollziehen (und meines Wissens als ungefährlich einstufen).Code Snippet1. Private Const SPI_SETDESKWALLPAPER As Integer = &H142. Private Const SPIF_UPDATEINIFILE As Integer = &H13. Private Const SPIF_SENDWININICHANGE As Integer = &H24. Private Declare Auto Function SystemParametersInfo Lib "user32.dll" (ByVal uAction As Integer, ByVal uParam As Integer, ByVal lpvParam As String, ByVal fuWinIni As Integer) As IntegerDa leider durch die Beschränkte Breite hier evtl. Zeilenumbrüche eingefügt wurden, habe ich vorne Zeilennummern angegeben. Diese müssen beim Übernehmen dann entfernt werden.Wenn man das als Deklarationen eingegeben hat, kann man mit:SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imageLocation, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)den Desktophintergrund ändern. (Alles nur eine Zeile und imageLocation durch den Pfad ersetzen)Auf deinen Fall übertragen heißt das dann, du schreibst in die entsprechenden Picturebox_click-Ereignisse:SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, My.Resources.Image1, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)wieder in eine Zeile und die Zahl nach Image erhöhen.mfgImperium
-
Hallo,
danke, ich denke es wird alles soweit klappen, nur es wird mir immernoch
My.Ressources
Als falsch angezeigt also Blau unterstrichen. Da steht als Fehler: "Ressources" ist kein Member von "My".
Aber ich habe das bild in "Projekt > Programmname Eigenschaften > Ressources > und hier dann das bild Image1.
PS. Könntest du mir mal erklären, wo der unteschied bei der Eigenschaft des Bildes ist:
Persistence > Einbetten in .resx oder lieber Verknüpfung zur Kompilierungszeit?????
MFG Stephan R. -
Hallo,Es heißt auch "resources", also mit nur einem "s". Wenn der Fehler immer noch angezeigt wird, kannst du einfach mal "my." eingeben und dann schauen, was IntelliSense dir als auswahlmöglichkeiten bietet.Der Unterschied ist, dass, wenn man ein Bild in die .resx einbettet, bei der Installation das Bild gleich mitgegeben wird. Wenn man einen Pfad angibt, hat das den Vorteil, dass man das Bild jederzeit ändern kann (indem man das Bild einfach durch ein anderes Bild mit gleichem Namen ersetzt). Der Nachteil jedoch ist, dass es ein Problem gibt, falls die entsprechende Datei nicht vorhanden ist.mfgImperium Romanum
-
Hallo,
es würde alles funktionieren, wenn dieses
My.Resources.Image1 nicht unterstrichen werden würde.
Bei
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, My.Resources.Image1, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
wird es immernoch unterstrichen also das My.Resources.Image1
MFG Stephan R. -
Hi,was für eine Fehlermeldung bekommst du denn? Stelle mal sicher, dass Image1 wirklich so heißt und sich auch unter den Ressourcen befindet und wirklich ein Bild ist. Wenn der Fehler immernoch bleibt, poste hier einfach deine Fehlermeldung.mfgImperium_Romanum