Ablakkezelés tulajdonságok
Nézd ábra. 3,10, ami azt mutatja, a teljes képet az asztalon.
Ábra. 3.10. A Windows belsejében egy ablak
Hozzon létre egy új projektet Delphi, megjelenik a Start gomb alakú. A gomb megnyomása után, levelet kihívás ismert funkciókon EnunWindows keresztül az összes ablakot:
Funkció EnurrWi ndowsProc, hogy fogják hívni minden ablakra kell kinéznie:
Itt ellenőrizzük, hogy az ablak látható. Ha igen, akkor az úgynevezett SetParent funkció, amely meghatározza a szülő ablakot. Az első paraméter a függvény meg kell adni az ablakon, akinek a szülei meg akarjuk változtatni, és a második megadott új szülő. A második paraméter egy mutató a fő ablakban a program. Így minden, ami a képernyőn át a megadott ablak.
Nézzük javítja a példáját, és egy kicsit játszani más emberek ablakok. Helyezzük formában gombot, hogy eltávolítsa a menüt vámtarifaszám esemény OnClick amely a következő függvény kerül meghívásra:
Itt kezdődik mellszobor az ablakokat, de most minden egyes ablakra fogják hívni egy másik funkció az úgynevezett EnumWi ndowsProcl. Ez a funkció a következő:
Ebben a funkcióban van egy ellenőrzést a megjelenése egy ablakra. Ha látható, akkor a függvény az úgynevezett SetMenu beállítás menüben. Ez a funkció, akkor meg kell felelnie a következő két paramétert:
a menüben, ami kell telepíteni. Megadása 0, ami megfelel a eltávolítása a menüből.
Futtassa a programot, és kattintson az Eltávolítás menüpontot. Az összes ablakot, ahol a normál Windows Start menüt használjuk, a menü eltűnik. A Delphi 7, a csomag MS Office szoftverek és egyéb termékek, amelyeket nem a szokásos menük XP stílusban. Ez tulajdonképpen egy panel gombokkal, amelyre kattintva legördülő menüből, így az ezekben a programokban, semmi sem fog történni.
Nézzük módosítsa a kódot, és fordítva, meg a menüt. Ehhez tegyük a forma TMainMenu komponens, és hozzon létre benne pontot. Akkor jön fel semmit, és nem feltétlenül tegye a rakodók, csak a nevek.
Most megváltoztathatja SetMenu funkció a következő:
Így az összes ablak beállítása menü alkatrész TMai nMenü. Nézd ábra. 3,11, ami azt mutatja, egy screenshot Delphi programot a saját menüben az egyes ablak, ahol ez korábban nem létezett. De a legérdekesebb dolog az, hogy a menü jelenik meg az asztalon (a tetején), és még a tálcán.
Mint látható, a menü nagyon egyszerű telepíteni. De ahhoz, hogy ez a munka - nem könnyű feladat. A rendszer nem rendelkezik eseménykezelőkkel a menüpontok és rakodók mi program nem nevezhető.
Ugyanígy meg lehet változtatni a tulajdonságait az ablakon. Mert ezt a funkciót nevezik Get-WindowLong ezt az utat:
Ábra. 3.11. Screenshot Delphi egy új menü
6e1I1pas funkció „1-CAP különböző beállításait lehet módosítani ablak funkció az alábbi paraméterekkel .:
• lehetőséget kell beállítani. A jelzett érték függ a második paraméter.
Esetünkben talált az ablak meghatározott első paraméter. A második paraméter azt jelzi, hogy meg kell változtatni az alapértelmezett ablak stílusát. De a harmadik paraméter egy nagyon érdekes design:
5eEI 0UL.0pd ^ (n 614_5TUE.) - Y5_SARTYUM
SetWinclowLong funkció megváltoztatja a megadott ablakjellemző. Az első paraméter egy mutató a talált dobozt, és a második - a type tulajdonság az érdeklődés. A második paraméter funkció SetWindowLong megadhatja ugyanazokat az értékeket, mint a második paraméter GetWindowLong funkciót.
Ebben az esetben megkapjuk a standard tulajdonságai az ablakon, és kivonni ezeket a tulajdonságokat header (I5_SARTYUM). Ennek eredményeként, ha az ablak volt a főcím, akkor távolítsa el azt. Természetesen, miután ezt a kódot tart hová menni, és ott maradni, de hogyan reagálnak a felhasználók események nem lesz pontos.
A forráskód példák itt tárgyalt a CD-ROM-ot BoigsevUgpOZ ^ yy / Youl /.