Gå til innhold

Animert musepeker i VB.NET


Anbefalte innlegg

Jeg tenkte å bruke en animert musepeker i et VB.NET-program, men det viste seg ganske raskt at

 

Dim peker As New Windows.Forms.Cursor(strøm)

Me.Cursor = peker

 

ikke ville virke. Her er peker variabelen jeg vil laste den animerte musepekeren inn i og strøm variabelen som inneholder dataene til ANI-fila. Innholdet i variabelen strøm er henta ut fra en innebygd ressurs gjennom Reflection.Assembly.GetEntryAssembly().GetManifestResourceStream. Jeg fant ut at jeg kunne bruke LoadImage-API-en, som gir meg en IntPtr jeg kan bruke som argument istedenfor variabelen strøm. Jeg prøvekjørte koden og det gikk helt fint, men jeg får bare LoadImage til å laste ANI-fila fra disken. Det jeg prøver på er å er å laste den fra en innebygd ressurs. Jeg er klar over at jeg kan midlertidig lagre strømmen til disk og så laste ANI-fila med LoadImage, men vil helst unngå midlertidige filer.

 

Er det mulig å få LoadImage til å lese direkte fra IO.Stream? Fins det eventuelt andre måter å laste inn animerte musepekere uten å lage ørten funksjoner og kodefiler? Forresten er det en 32-biters musepeker det er snakk om. Vil helst unngå at halvgjennomsiktige områder forsvinner eller blir helt ugjennomsiktige.

Lenke til kommentar
Videoannonse
Annonse

Takk for et godt godeeksempel. Jeg så igjennom koden og fant delen der et bildet hentes ut fra ressursfilene. Problemet er at koden ikke vil virke.

 

peker = LoadImage(Runtime.InteropServices.Marshal.GetHINSTANCE(Me.GetType().Module), <navn et på ressursen (Prosjektnavn.filnavn)>, 2, 0, 0, 0)

 

Jeg mistenker at LoadImage ikke får tak i musepekeren fordi VB.NET lagrer ressursene på en merkelig måte. Jeg har valgt «Build Action» til fila til å være «Embedded resource». Fila dukker ikke opp i f.eks. programmet Resource Hacker, slik som ressursene som jeg la til i VB6s «Resource Editor» gjorde.

 

Har jeg gjort noe feil her eller vil ikke LoadImage laste VB.NET-programmers ressurser?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...