Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Hiirestä (SDL)

Sivun loppuun

Tumpelo [01.01.2006 16:49:17]

#

Eli kuinka saa selville että onko hiiri jonkin kuvan päällä nappia painettaessa? Kuvat on piirretty täältä löytyvän oppaan mukaisesti ja kaksoispuskuroinnilla.

Antti Laaksonen [01.01.2006 16:52:35]

#

Tiedät varmaankin hiiren koordinaatit ja kuvan koordinaatit. Nämä tiedot riittävät tarkistukseen.

tuomas [01.01.2006 16:53:10]

#

Pidä kuvan kordinaatteja tallessa ja vertaa niitä sitten hiiren kordinaatteihin, ei oo sen vaikeampaa.

Tumpelo [01.01.2006 16:55:44]

#

Öö mutta jos piirrän kuvan vaikka kohtaan 10, 10 niin silloinhan jos tarkistaisin että onko hiiren osoitin kohdan 10, 10 päällä niin vain napin yläkulmasta painaminen toimisi..

Heikki [01.01.2006 16:56:31]

#

Ota huomioon kuvan leveys ja korkeus.

Vinkki:
jos x>kuvax ja x<kuvax+leveys

Tumpelo [01.01.2006 16:57:14]

#

Ah niinpä tietenkin. :D Aivot jumissa...

EDIT: Höh, tuli ongelma. Hiiri ei suostu liikahtamaankaan sovelluksessani, tiukasti jämöttää vasemmassa ylänurkassa... :S

Tumpelo [01.01.2006 21:48:50]

#

Hmm, mikähän on kun tuo hiiri ei suostu liikkumaan.. Vaatiiko sekin jonkinlaisen koodin että lähtee hiiri toimimaan?

EDIT: No höh, kokoruututilassa ei hiiri toimi mutta ikkunassa toimii aivan oikein... Mistäköhän moinen..?

Touho [01.01.2006 23:08:33]

#

Ainoa järkevä syy, jonka keksin on se, että siellä on GetMousePos() funktion tilalla SetMousePos() funktio, johon sijoitat vahingossa luvut 0 ja 0 (tai jotain vastaavaa). Tällöin hiiri ei pääse liikkumaan kulmasta, koska jokaisessa framessa sille käsketään olemaan siellä.

Tuo teoria on kyllä ihan tuulesta temmattu kuten myös funktioiden nimet.

Antti Laaksonen [01.01.2006 23:16:23]

#

Laita koodi näkyville, koska muuten ongelman syytä on vaikea arvailla...

Tumpelo [02.01.2006 10:39:18]

#

Nyt se alkoi toimimaan vaikkei koodi ole muuttunut yhtään minnekään... Olisikohan tämä jotain Windowsin sekoilua...


Sivun alkuun

Vastaus

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

Tietoa sivustosta