Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: ikkunoiden pyöritys

Sivun loppuun

water flea [06.10.2004 09:39:45]

#

Haluaisin tehdä ohjelman, joka pyörittää ruudulla näkyviä ikkunoita. Luullakseni tarvitsisin tämän ihmeen toteuttamiseen API-käskyn, joka antaa minulle ruudulla näkyvien ikkunoiden kahvat ja sitten pitäisi saada vielä ikkunoiden muoto muuttumaan. Anybody wanna help me??

hunajavohveli [06.10.2004 11:56:51]

#

Siis ohjelma, joka pyörittää ikkunaa ruudulla? Muodonmuuttamiseen en ole perehtynyt, mutta kaavailetko jotain tämän tapaista? Tuota ei saa sitten lopetettua kuin Task Managerista.

Blaze [06.10.2004 12:24:22]

#

hunajavohveli kirjoitti:

http://koodaa.mine.nu/~vohveli/OMG.exe

Hohhoh, oli kova työ mun maskotilla pysyä perässä :P

Mitä itse aiheeseen tulee, niin minä käsitin, että alkup. postaaja haluaa pyörittää formia sen keskipisteen ympäri, ASCII-"taiteena" jokseenkin näin:

 __                 __
|  |  --> / \  --> |  |
|__|      \ /      |__|

...mikä saattaa osoittautua hankalaksi

Metabolix [06.10.2004 14:33:03]

#

Ulkopuolisten prosessien ikkunoita tuskin saat pyöriteltyä, ja omasikaan ei välttämättä pyöri ihan helposti. Toiminta on kuitenkin tämä, olettaen, että käytät C:tä:
1. Piirrä ikkuna ylimääräiselle HDC:lle
2. Täytä itse ikkuna läpinäkyvällä. HBRUSH 0
3. Käännä ja piirrä kuva.
Kääntäminen onnistuu ainakin SDL_gfx:llä, DirectX:llä ja OpenGL:llä.
Läpinäkyvyydestä en tiedä tarkemmin kuin että HBRUSH == 0 on hyvä kokeilla. Delphillä ja CBuilderilla tuo onnistuu helpommin.

water flea [08.10.2004 20:58:48]

#

No pystyn ainakin liikuttelemaan muiden sovellusten ikkunoita, joten eikös pyöritys olisi ainakin teoriassa mahdollista jos mulla on pyöritettävien ikkunoiden kahvat?

Metabolix [08.10.2004 22:59:22]

#

Tuo voi ohjelmakohtaisesti joko toimia tai olla toimimatta. Jos keksit ratkaisun, niin kerro ihmeessä, mutta Windows itsessään ei osaa edes kääntää kuvaa kuin 90º kulmassa tai peilaten, joten WinAPI:lla tuo ei toimi.

thefox [09.10.2004 12:08:45]

#

Yleensä tuollaiset epäsäännölliset muodot tehdään regioneilla TAI layereilla (2000/XP ainoastaan), eli tuo ikkunan täyttäminen läpinäkyvällä ei taida toimia. Kyllä tuollaisen virityksen periaatteessa varmaankin voisi tehdä mutta siitä tulisi todella hidas (varsinkin regionien tapauksessa) ja melko monimutkainen.

Suosittelisin jättämään sikseen :)

Metabolix [09.10.2004 14:13:18]

#

Kyllä se läpinäkyvyys on ihan mahdollinen, katsokaa vaikka. En vain löydä WinAPI:sta oikeaa funktiota.

Blaze [09.10.2004 14:21:22]

#

Metabolix kirjoitti:

Kyllä se läpinäkyvyys on ihan mahdollinen

Toki on. Maskottini jo todistaa sen.

thefox [09.10.2004 19:47:30]

#

Siis en tarkoittanut ettei läpinäkyvyys olisi mahdollista, vaan tarkoitin ettei se onnistu niin, että täytetään ikkuna läpinäkyvällä brushilla :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta