Sådan Får Du Fat I Et Vindue

Indholdsfortegnelse:

Sådan Får Du Fat I Et Vindue
Sådan Får Du Fat I Et Vindue

Video: Sådan Får Du Fat I Et Vindue

Video: Sådan Får Du Fat I Et Vindue
Video: Hun er min! Hvem er køligere? Hvem vil Wendy vælge - Robbie eller Dipper?! 2024, December
Anonim

Konceptet med brugergrænsefladen i Windows er baseret på konceptet med et vindue. Dialoger, knapper, kontrolpaneler, lister er alle vinduer. Derfor er du nødt til at få et vindueshåndtag for at udføre enhver handling med ethvert element i grænsefladen til din egen eller andres applikation.

Sådan får du fat i et vindue
Sådan får du fat i et vindue

Nødvendig

  • - Platform SDK-pakke
  • - kompilator.

Instruktioner

Trin 1

Få håndtaget til vinduet ved at oprette det. Foretag opkald til CreateWindow eller CreateWindowEx API-funktionerne, eller ring til de relevante indpakningsmetoder (på de nødvendige objekter) for klasserne i det anvendte framework eller bibliotek, der indkapsler funktionaliteten ved at arbejde med windows eller kontrolelementer. Funktionerne CreateWindow og CreateWindowEx returnerer vinduesgreb ved vellykket oprettelse. Hvis de ikke ringes op, returnerer de NULL. Fejlårsagskoden kan anmodes om ved hjælp af GetLastError API-funktionen. Prototyper og detaljerede beskrivelser af parametrene for funktionerne CreateWindow og CreateWindowEx kan fås fra linkene https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx og https:// msdn.microsoft.com / da-us / bibliotek / windows / desktop / ms632680% 28v = vs.85% 29.aspx Når du bruger klasser i forskellige rammer, kan oprettelsen af operativsystemvindueobjekter forekomme enten eksplicit (ved at kalde en metode) eller implicit (implementering af RAII-strategien). Derfor er det bedre at få vindueshåndtaget på et færdigt initialiseret objekt. Du kan lære om metoderne for de klasser, der returnerer vindueshåndtaget indkapslet af objektet i dokumentationen til den tilsvarende ramme. For eksempel i MFC er en lignende metode GetSafeHwnd af CWnd-klassen.

Trin 2

Få fat i et vindue ved at søge efter det. Brug funktionerne FindWindow og FindWindowEx API eller de relevante klasseobjektindpakninger til den ramme, du bruger. FindWindow returnerer et håndtag til vinduet på øverste niveau, hvis det findes, eller NULL ved fejl. Søgningen udføres efter klassenavn og vinduetitel. Beskrivelse af parametrene og aspekterne af funktionen kan findes på linket https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. Semantikken i FindWindowEx-funktionen ligner FindWindow med den eneste forskel er, at den søger efter underordnede vinduer. Dokumentationen til FindWindowEx er tilgængelig på

Trin 3

Find håndtaget til vinduet, mens du angiver deres sæt. Brug API-funktionerne EnumWindows, EnumChildWindows, EnumThreadWindows eller metoder til klasseobjekter i den ramme, du bruger. EnumWindows- og EnumChildWindows-funktionerne tæller henholdsvis topvinduer og underordnede vinduer. Funktionen EnumThreadWindows tæller alle ikke-underordnede vinduer i den angivne tråd. Hver af disse funktioner skal sendes en markør til en tilbagekaldsprocedure, som vil blive sendt håndtagene på de fundne vinduer som parametre under drift. Ved at kombinere optællingsfunktioner, få og analysere vindueegenskaber i tilbagekaldsproceduren kan du finde håndtaget til det ønskede vindue. Dokumentationen for de beskrevne funktioner findes på linkene: - 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.

Trin 4

Få fat i et vindue ved kendte koordinater. Funktionerne WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx returnerer håndtag til de vinduer, som det angivne punkt tilhører. WindowFromPoint-funktionen er den nemmeste at bruge, men returnerer ikke håndtag til skjulte eller deaktiverede vinduer. Du kan finde dokumentation om dets anvendelse på https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Funktionerne ChildWindowFromPoint og ChildWindowFromPointEx finder håndtag til barnet vinduer i et givet overordnet vindue, der hører til et givet punkt. I dette tilfælde kan ChildWindowFromPointEx's adfærd styres fleksibelt ved hjælp af en yderligere parameter. Dokumentationen for disse funktioner leveres af linkene: - 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.

Anbefalede: