Koncepti i ndërfaqes së përdoruesit në Windows bazohet në konceptin e një dritareje. Dialogët, butonat, panelet e kontrollit, listat janë të gjitha dritare. Prandaj, në mënyrë që të kryeni ndonjë veprim me ndonjë element të ndërfaqes tuaj ose të aplikacionit të dikujt tjetër, duhet të merrni një dorezë të dritares.
E nevojshme
- - Paketa e platformës SDK;
- - përpiluesi.
Udhëzimet
Hapi 1
Merrni dorezën në dritare duke e krijuar atë. Bëni thirrje në funksionet CreateWindow ose CreateWindowEx API, ose thirrni metodat e duhura mbështjellëse (në objektet e nevojshme) të klasave të kornizës ose bibliotekës së përdorur që përmbledh funksionalitetin e punës me dritaret ose kontrollet. Funksionet CreateWindow dhe CreateWindowEx kthejnë drejtpërdrejt doreza e dritares për krijimin e suksesshëm. Nëse thirren pa sukses, ata kthehen NULL. Kodi i arsyes së gabimit mund të kërkohet duke përdorur funksionin GetLastError API. Prototipet dhe përshkrimet e hollësishme të parametrave të funksioneve CreateWindow dhe CreateWindowEx mund të merren nga lidhjet https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx dhe https:// msdn.microsoft.com / en-us / biblioteka / windows / desktop / ms632680% 28v = vs.85% 29.aspx Kur përdorni klasa të kornizave të ndryshme, krijimi i objekteve të dritares së sistemit operativ mund të ndodhë në mënyrë të qartë (duke thirrur një metodë) ose në mënyrë të nënkuptuar (zbatimi i strategjisë RAII). Prandaj, është më mirë të merrni dorezën e dritares në një objekt të gatshëm të iniciuar. Ju mund të mësoni për metodat e klasave që kthejnë dorezën e dritares të kapsuluar nga objekti në dokumentacionin e kornizës përkatëse. Për shembull, në MFC, një metodë e ngjashme është GetSafeHwnd e klasës CWnd.
Hapi 2
Merrni një dorezë në një dritare duke e kërkuar atë. Përdorni funksionet FindWindow dhe FindWindowEx API ose mbështjellësit e përshtatshëm të objektit të klasës për kornizën që po përdorni. FindWindow kthen një dorezë në dritaren e nivelit të lartë nëse gjendet, ose NULL në dështim. Kërkimi kryhet nga emri i klasës dhe titulli i dritares. Përshkrimi i parametrave dhe aspekteve të funksionit mund të gjendet në lidhjen https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. Semantika e funksioni FindWindowEx është i ngjashëm me FindWindow me ndryshimin e vetëm se kërkon për dritare të fëmijëve. Dokumentacioni për FindWindowEx është në dispozicion në
Hapi 3
Gjeni dorezën në dritare ndërsa renditni setet e tyre. Përdorni funksionet API EnumWindows, EnumChildWindows, EnumThreadWindows, ose metodat e objekteve të klasës të kornizës që po përdorni. Funksionet EnumWindows dhe EnumChildWindows numërojnë dritaret e niveleve të larta, përkatësisht dritaret e fëmijëve. Funksioni EnumThreadWindows numëron të gjitha dritaret jo-fëmijë të fijes së specifikuar. Secili prej këtyre funksioneve duhet të kalojë një tregues në një procedurë kthyese, e cila do të kalojë dorezat e dritareve të gjetura si parametra gjatë operimit. Duke kombinuar funksionet e numërimit, marrjen dhe analizimin e vetive të dritares në procedurën e kthimit, ju mund të gjeni dorezën e dritarja e kërkuar. Dokumentacioni për funksionet e përshkruara jepet në lidhjet: - 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.
Hapi 4
Merrni një dorezë në një dritare në koordinatat e njohura. Funksionet WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx kthejnë dorezat në dritaret që i përket pika e specifikuar. Funksioni WindowFromPoint është më e lehtë për t'u përdorur, por nuk kthen dorezat për dritaret e fshehura ose të paafta. Dokumentacionin për përdorimin e tij mund ta gjeni në https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Funksionet ChildWindowFromPoint dhe ChildWindowFromPointEx gjejnë doreza për fëmijën dritaret e një dritare të dhënë prind i përkasin një pike të caktuar. Në këtë rast, sjellja e ChildWindowFromPointEx mund të kontrollohet në mënyrë fleksibile duke përdorur një parametër shtesë. Dokumentacioni për këto funksione sigurohet nga lidhjet: - 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.