Hogyan Lehet Kilincset Kapni Egy Ablakhoz

Tartalomjegyzék:

Hogyan Lehet Kilincset Kapni Egy Ablakhoz
Hogyan Lehet Kilincset Kapni Egy Ablakhoz

Videó: Hogyan Lehet Kilincset Kapni Egy Ablakhoz

Videó: Hogyan Lehet Kilincset Kapni Egy Ablakhoz
Videó: Hogyan mossunk ki ruhából egy foltot 2024, Lehet
Anonim

A Windows felhasználói felületének koncepciója az ablak koncepcióján alapszik. A párbeszédek, a gombok, a kezelőpanelek és a listák mind ablakok. Ezért ahhoz, hogy bármilyen műveletet végrehajtson a saját vagy valaki más alkalmazás felületének bármely elemével, meg kell szereznie egy ablakkezelőt.

Hogyan lehet egy ablakhoz fogni
Hogyan lehet egy ablakhoz fogni

Szükséges

  • - Platform SDK csomag;
  • - fordító.

Utasítás

1. lépés

Hozza létre a fogantyút az ablakhoz. Hívjon a CreateWindow vagy a CreateWindowEx API függvényekre, vagy hívja meg a használt keretrendszer vagy könyvtár osztályainak megfelelő burkolási metódusait (a szükséges objektumokon), amelyek a Windows vagy a vezérlők használatának funkcióit foglalják magukba. A CreateWindow és a CreateWindowEx függvények közvetlenül visszaadják a ablak fogantyú a sikeres létrehozáshoz. Ha sikertelenül hívják, akkor NULL-t adnak vissza. A hiba okát a GetLastError API függvény segítségével lehet kérni. A CreateWindow és a CreateWindowEx függvények prototípusai és paramétereinek részletes leírása a https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx linkekről szerezhető be. és https:// msdn.microsoft.com / hu-us / library / windows / desktop / ms632680% 28v = vs.85% 29.aspx Különböző keretrendszerek osztályainak használatakor az operációs rendszer ablakobjektumai kifejezetten létrejöhetnek (módszer meghívásával) vagy implicit módon (a RAII stratégia megvalósítása). Ezért jobb, ha az ablak fogantyúját egy kész inicializált objektumra szerezzük be. A megfelelő keretrendszer dokumentációjában megismerheti azoknak az osztályoknak a módszereit, amelyek visszaadják az objektum által bezárt ablakkezelőt. Például az MFC-ben hasonló módszer a CWnd osztály GetSafeHwnd.

2. lépés

Keressen egy ablak fogantyút kereséssel. Használja a FindWindow és a FindWindowEx API függvényeket vagy a megfelelő osztályobjektum-burkolókat az Ön által használt keretrendszerhez. A FindWindow egy fogantyút ad vissza a legfelső szintű ablakba, ha megtalálta, vagy NULL-t a meghibásodáskor. A keresést osztálynév és ablakcím szerint végzik. A függvény paramétereinek és szempontjainak leírása a https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx linken található. a FindWindowEx függvény hasonló a FindWindow-hoz, csak annyi különbséggel, hogy gyermekablakokat keres. A FindWindowEx dokumentációja a https://msdn.microsoft.com/hu-hu/library/windows/desktop/ms633500%28v=vs.85%29.aspx címen érhető el.

3. lépés

Keresse meg az ablak fogantyúját, miközben felsorolja a készleteiket. Használja az EnumWindows, EnumChildWindows, EnumThreadWindows API függvényeket vagy a használt keretrendszer osztályobjektumainak metódusait. Az EnumWindows és EnumChildWindows függvények felsorolják a legfelső szintű ablakokat és a gyermekablakokat. Az EnumThreadWindows függvény felsorolja a megadott szál összes nem gyermekablakát. Ezeknek a függvényeknek egy mutatót kell átadniuk egy visszahívási eljáráshoz, amely a működés során paraméterként adja át a megtalált ablakok fogantyúit. A felsorolási funkciók kombinálásával, az ablak tulajdonságainak lekérésével és elemzésével a visszahívási eljárásban megtalálhatja a a kívánt ablakot. A leírt funkciók dokumentációja a következő linkeken található: - EnumWindows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497%28v=vs.85%29.aspx; - EnumChildWindows: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms633494%28v=vs.85%29.aspx; - EnumThreadWindows: https://msdn.microsoft.com/en-us/library / windows / desktop /ms633495%28v=vs.85%29.aspx.

4. lépés

Szerezzen fogantyút egy ismert koordinátájú ablakhoz. A WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx függvények visszaadják a fogantyúkat azoknak az ablakoknak, amelyekhez a megadott pont tartozik. A WindowFromPoint függvény a legkönnyebben használható, de rejtett vagy letiltott ablakok esetén nem ad vissza fogantyúkat. A használatával kapcsolatos dokumentációt a https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx oldalon találja meg. A ChildWindowFromPoint és ChildWindowFromPointEx függvények a gyermek számára nyújtanak fogantyúkat egy adott ponthoz tartozó adott szülőablak ablakai. Ebben az esetben a ChildWindowFromPointEx viselkedése rugalmasan vezérelhető egy további paraméter segítségével. Ezen funkciók dokumentációját a következő linkek adják: - ChildWindowFromPoint: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632676%28v=vs.85%29.aspx; - ChildWindowFromPointEx: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms632677%28v=vs.85%29.aspx.

Ajánlott: