Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Vain osa kuvasta näkyviin?

Sivun loppuun

sniiki [12.06.2008 15:53:16]

#

Tarkoitus olisi tehdä ohjelmalleni graafinen ulkoasu ja ajattelin päästä helpoimmalla siten, että piirrän photarilla vain kaksi isoa kuvaa koko ulkoasusta. Toinen normaalitilassa ja toinen esittämään nappien värejä kun niitä on painettu.

Mutta miten onnistuu VB.NET:illä moisen toteutus? Nappien luonnin helpottamiseksi asettelisin esim. piilotettuja planeja / nappeja tms. formiin ja käyttäisin niiden koordinaatteja kuvan klikkausalueen tunnistukseen, sekä "nappi pohjassa" -kuvan oikean osan näyttämiseen?

sniiki [13.06.2008 19:36:44]

#

No eikö kukaan osaa auttaa :(
Drawimagellahan tuo pitäisi onnistua mutta mulla ainakin kusee se siten, että jos kopioin osan toisesta kuvasta toiseen kuvaan, skaalautuu kopioitu pala todella pieneksi.

http://msdn.microsoft.com/en-us/library/ms172505.aspx

User137 [13.06.2008 19:43:50]

#

Antamassasi linkissä:
g.DrawImage(bmp, dstRect, srcRect, GraphicsUnit.Pixel)

Tuolla pitäisi kyllä onnistua koko homma. Jos skaalautuu pieneksi niin muuta dstRect aluetta suuremmaksi.

sniiki [13.06.2008 21:05:10]

#

Juu siis kuten sanoin, PITÄISI tuolla onnistua. Mutta vaikka määritän esim. kohdekuvan paikan (.location) jonkun toisen kuvan mukaan, ei se koskaan täysin siihen haluttuun paikkaan asetu.

Eli siis, mulla on isohko kuva, jonka päälle oon piirtäny planen, jota käytän halutun osan kopioinnin määrittämiseen (clientrectangle ja location käskyt). Sitte mulla on toinen isohko kuva jonka päällä vastaavasti plane (samankokoinen plane kuin lähteessä). Tätä siis käytän kohdepaikan määrittämiseen graafisesti.
No se ei kuitenkaan mene koskaan sinne minne pitäis, ja jos menee niin skaalautuu pieneksi.

sniiki [27.06.2008 12:45:34]

#

Täällä ei ilmeisesti ketään kiinnosta aloittelijoita auttaa vai oliko tämä nyt tosiaan niin paha rasti?

Newb [27.06.2008 13:43:21]

#

Miks se pitäis tehdä noin hankalasti? Tuhat kertaa helpompaa tehdä jokaiselle napille omat kuvat.

sniiki [27.06.2008 14:26:37]

#

Siksi että tällä tavoin saadaan tiettyjä helpotuksia grafiikoiden luomiseen ja muokkaamiseen erityisesti jos rakennetaan jonkinlainen skinieditori.
+
Koska nappini ovat läpikuultavia png kuvia ja haluan niiden päälle transparentit labelit, joutudun vaihtamaan labelien parentin kuvaan. Tällöin, jos kuva on koko formin kokoinen, säilyy desing tilassa asetetut koordinaatit oikeina, mutta jos teen tämän erikseen jokaiselle pienelle kuvalle, joudun sumplimaan koordinaatit uudestaan.

EDIT:
Tuo labelien sijainti onnistuikin PointTo- komennoilla:

Dim p As Point
p = Label1.PointToScreen(Label1.Location)
Label1.Parent = PictureBox3
Label1.Location = Label1.PointToClient(p)

sniiki [27.06.2008 15:17:34]

#

Voi olla että tossa pitäisi olla .parent mukana myös, eli:

Dim p As Point
p = Label1.parent.PointToScreen(Label1.Location)
Label1.Parent = PictureBox3
Label1.Location = Label1.parent.PointToClient(p)

User137 [28.06.2008 13:11:43]

#

Joo muistelen että VB:ssä käytettiin erilaista mittayksikköä jonka pystyi kai vaihtamaan formin propertiesistä

sniiki [29.06.2008 00:04:20]

#

Niin meinasit että se kuvien venyminen kopioitaessa johtuu siitä? Täytyypä tarkistaa asia. Graphicsunitti on ollu pixeleiks asetettuna tos kopioinnis.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta