Morjensta kaikille,
Elikkäs, onko kellään tietoa, että miten pystyisin tekemään oman SDL liikutus palikan. Eli siis se palikka joka tulee ikkunan ylle jossa näkyy ikkunan nimi sammutus nappi jne jne. Eli otin ikkunastani reunat pois SDL:än NOFRAMELLA ja nytten pitäisi saada liikutettua ikkunaa työpyödällä oma piirtämästäni palikasta.
Eli liikutus tapahtuisi hiireä käyttämällä, kuten aina. :)
Toinen asia on se,että onko SDL:llä mahdollista luoda lapsi ikkunoita?
...toivottavasti saitte jotai selkoo!
Kiitos.
Afaik SDL on grafiikka kirjasto jotenka ainakaan lapsi-ikkunat eivät onnistu. Ja tuosta reunasta en tiedä, mutta veikkaisin että jollain kyseisen käyttöjärjestelmän tai sille tehtyllä kirjastolla pystyy kyllä ne tekemään.
temu92 kirjoitti:
Afaik SDL on grafiikka kirjasto — —
Mutta tukeehan se myös syötteidenlukua, äänentoistoa yms...
Nopealla vilkaisulla en löytänyt SDL:stä ratkaisua toteuttaa liikutuspalkkia tai lapsi-ikkunoita. Jos käytössä on c++, hyvä vaihtoehto voisi olla wxwidgets.
SDL on vähän enemmän kuin vain grafiikkakirjasto, mutta suoraa tukea lapsi-ikkunoille ei ole.. Tai ainakaan en tiedä sellaisesta.
Omia asian ajavia virityksiä voi kuitenkin luoda lapsiprosesseilla (jos haluaa ikkunan lähtevän pois pääikkunan alueelta) tai, mikä varmaan sopii tarkoitukseesi paremmin, kikkailla Surfaceilla, tyyliin kuten tässä kuvankaappauksessa: http://www.polplex.co.uk/~tigger/sdl/
SDL:ssä ei ole omaa funktiota ikkunan liikutteluun. Voit käyttää systeemikomentoja mutta se tekee koodista huonommin porttautuvaa.
SetWindowPos() on muistaakseni Windowsin ikkunanliikuttelufunktio.
Ehkä.
Win32 API:lla toteutettujen graafisten käyttöliittymien kanssa toimii jippo WM_NCLBUTTONDOWN:
case WM_LBUTTONDOWN: // #define HTCAPTION 2, jossei oo entuudestaan määritelty SendMessage(hwndAkkuna, WM_NCLBUTTONDOWN, (WPARAM)HTCAPTION, lParam); break;
Toi siis ikkunan viestinkäsittelijään (window procedure) ja sen jälkeen sitä ikkunaa voi liikuttaa mistä tahansa kohdasta. Kaipa SDL:llä luotua ikkunaa voidaan samalla periaatteella liikuttaa (eli kun hiirtä klikataan, lähetetään toi viesti), jos kahva siihen liikutettavaan ikkunaan on jostain saatavilla.
Jos haluut että ikkunas liikkuu vain piirtämästäs captionista (siitä palikasta?), niin tietysti lähetät tuon viestin vain jos hiiri klikkaa oikeaan kohtaan. Ne hiiren koordinaatit saa WM_LBUTTONDOWN viestin tapauksessa lParamista, joka on pointteri POINTS-struktuuriin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.