Hvordan Få Tak I Et Vindu

Innholdsfortegnelse:

Hvordan Få Tak I Et Vindu
Hvordan Få Tak I Et Vindu

Video: Hvordan Få Tak I Et Vindu

Video: Hvordan Få Tak I Et Vindu
Video: узнав этот СЕКРЕТ, струбциной будешь работать по другому! ОТЛИЧНАЯ идея своими руками! 2024, Kan
Anonim

Konseptet med brukergrensesnittet i Windows er basert på konseptet med et vindu. Dialoger, knapper, kontrollpaneler, lister er alle vinduer. Derfor, for å utføre handlinger med et hvilket som helst element i grensesnittet til din egen eller andres applikasjon, må du skaffe deg et vindushåndtak.

Hvordan få tak i et vindu
Hvordan få tak i et vindu

Nødvendig

  • - Plattform SDK-pakke;
  • - kompilator.

Bruksanvisning

Trinn 1

Få tak i vinduet ved å lage det. Foreta anrop til CreateWindow eller CreateWindowEx API-funksjonene, eller ring de riktige innpakningsmetodene (på de nødvendige objektene) for klassene i det brukte rammeverket eller biblioteket som innkapsler funksjonaliteten til å arbeide med windows eller kontroller. CreateWindow og CreateWindowEx-funksjonene returnerer direkte vindushåndtak på vellykket opprettelse. Hvis de ikke ringte, returnerer de NULL. Feilårsakskoden kan be om ved hjelp av GetLastError API-funksjonen. Prototyper og detaljerte beskrivelser av parameterne for CreateWindow- og CreateWindowEx-funksjonene kan fås fra lenkene https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx og https:// msdn.microsoft.com / en-us / bibliotek / windows / desktop / ms632680% 28v = vs.85% 29.aspx Når du bruker klasser med forskjellige rammer, kan opprettelsen av operativsystemvinduobjekter forekomme enten eksplisitt (ved å kalle en metode) eller implisitt (implementering av RAII-strategien). Derfor er det bedre å få vindushåndtaket på et ferdig initialisert objekt. Du kan lære om metodene til klassene som returnerer vindushåndtaket innkapslet av objektet i dokumentasjonen til det tilsvarende rammeverket. For eksempel, i MFC, er en lignende metode GetSafeHwnd av CWnd-klassen.

Steg 2

Få tak i et vindu ved å søke etter det. Bruk API-funksjonene FindWindow og FindWindowEx eller de aktuelle klasseobjektene for rammeverket du bruker. FindWindow returnerer et håndtak til toppnivåvinduet hvis det blir funnet, eller NULL ved feil. Søket utføres etter klassenavn og vinduetittel. Beskrivelse av parametrene og aspektene ved funksjonen finner du på lenken https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. Semantikken til FindWindowEx-funksjonen ligner på FindWindow, med bare forskjellen er at den søker etter underordnede vinduer. Dokumentasjonen for FindWindowEx er tilgjengelig på

Trinn 3

Finn håndtaket til vinduet mens du lister opp settene. Bruk API-funksjonene EnumWindows, EnumChildWindows, EnumThreadWindows eller metoder for klasseobjekter i rammeverket du bruker. EnumWindows- og EnumChildWindows-funksjonene teller henholdsvis toppvinduer og underordnede vinduer. EnumThreadWindows-funksjonen oppregner alle ikke-underordnede vinduer i den angitte tråden. Hver av disse funksjonene må sendes en peker til en tilbakeringingsprosedyre, som vil bli sendt håndtakene til de funnet vinduene som parametere under drift. Ved å kombinere oppregningsfunksjoner, få og analysere vindusegenskaper i tilbakeringingsprosedyren kan du finne håndtaket til ønsket vindu. Dokumentasjonen for funksjonene som er beskrevet, er gitt på lenkene: - 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.

Trinn 4

Få tak i et vindu ved kjente koordinater. Funksjonene WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx returnerer håndtakene til vinduene som det angitte punktet tilhører. WindowFromPoint-funksjonen er den enkleste å bruke, men returnerer ikke håndtak for skjulte eller deaktiverte vinduer. Du finner dokumentasjon om bruken på https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Funksjonene ChildWindowFromPoint og ChildWindowFromPointEx finner håndtak for barnet vinduer i et gitt foreldrevindu som tilhører et gitt punkt. I dette tilfellet kan oppførselen til ChildWindowFromPointEx kontrolleres fleksibelt ved hjelp av en ekstra parameter. Dokumentasjonen for disse funksjonene er gitt av lenkene: - 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.

Anbefalt: