Delphi - Polygon Form

2. rész

forráskód letöltése
Ha már unja, hogy állandóan csak szürke téglalapok borítják el a képernyőjét, dobja fel Ön is a hangulatot...

Mint, ahogy az a mellékelt példában is látható, nem szükségszerű hogy téglalap alakú ablakokkal dolgozzunk.
A példaprogramból azt is megtudhatjuk, hogy hogyan lehet egy Form-ot nemcsak a fejlécénél fogva mozgatni, hanem egy tetszőleges pontnál megfogva is.

Lapunk legelső számában már bemutatunk egy ehhez a példához hasonló megoldást. Most egy kissé továbbfejlesztettük azt a programot. Ha már unja, hogy állandóan csak szürke téglalapok borítják el a képernyőjét, dobja fel Ön is a hangulatot...

Mint, ahogy az a mellékelt példában is látható, nem szükségszerű hogy téglalap alakú ablakokkal dolgozzunk. A példaprogramból azt is megtudhatjuk, hogy hogyan lehet egy Form-ot nemcsak a fejlécénél fogva mozgatni, hanem egy tetszőleges pontnál megfogva is.

Lapunk legelső számában már bemutatunk egy ehhez a példához hasonló megoldást. Most egy kissé továbbfejlesztettük azt a programot.

Ahhoz, hogy egy tetszőleges poligon legyen az ablakunk körvonala, azt a SetWindowRgn függvénnyel tudjuk létrehozni. A használat előtt viszont létre kell hoznunk magát a poligont, mint ahogyan a mellékelt példában ez látható is.

Mivel ebben az esetben egy olyan poligont hozunk létre, hogy a Form fejléce eltűnik, ezért más módszerrel kell megoldanunk a Form mozgatását. Ehhez a Windows WM_NCHITTEST üzenetét fogjuk felhasználni. Ez az üzenet akkor jön létre, mikor a felhasználó kattint valahova a Form-on. Az üzenetkezelő függvényben rögtön meg is hívjuk az eredeti függvényt az inherited kulcsszóval. Ezután ellenőrizzük, hogy az eredeti függvény milyen értéket határozott meg. Ha azt tapasztaljuk, hogy a felhasználó a Form kliens területére (HTCLIENT) kattintott, akkor azt "hazudjuk" a Windows-nak, hogy a felhasználó az ablakunk fejlécén (HTCAPTION) nyomta le az egér gombját. Ettől kezdve ugyanúgy tudjuk mozgatni az ablakot a kliens területnél megfogva, mintha csak a fejlécét fognánk.

Polygon Form cikksorozat

Polygon Form - 2. rész