Windows-da istifadəçi interfeysi konsepsiyası bir pəncərə konsepsiyasına əsaslanır. Dialoqlar, düymələr, idarəetmə panelləri, siyahılar hamısı pəncərələrdir. Buna görə, özünüzün və ya başqasının tətbiqetməsinin interfeysinin hər hansı bir elementi ilə hər hansı bir hərəkət etmək üçün bir pəncərə sapı əldə etməlisiniz.
Zəruri
- - Platforma SDK paketi;
- - tərtibçi.
Təlimat
Addım 1
Pəncərəni yaradaraq onu tutun. CreateWindow və ya CreateWindowEx API funksiyalarına zəng edin və ya istifadə edilmiş çərçivə və ya kitabxana sinifləri və ya pəncərələrlə işləmə funksiyasını özündə cəmləşdirən müvafiq banderol metodlarını (lazımi obyektlərdə) çağırın. CreateWindow və CreateWindowEx funksiyaları birbaşa uğurlu yaradılması pəncərə sapı. Uğursuz çağırıldıqda, NULL qayıdırlar. Xəta səbəbi kodu GetLastError API funksiyasından istifadə etməklə istənilə bilər. Protetipləri və CreateWindow və CreateWindowEx funksiyalarının parametrlərinin ətraflı təsvirlərini https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx linklərindən əldə etmək olar. və https:// msdn.microsoft.com / en-us / library / windows / desktop / ms632680% 28v = vs.85% 29.aspx Fərqli çərçivə siniflərindən istifadə edilərkən, əməliyyat sistemi pəncərə obyektlərinin yaradılması açıq şəkildə baş verə bilər (bir metod çağıraraq) və ya dolayı (RAII strategiyasının həyata keçirilməsi). Buna görə, hazır başlanğıc edilmiş bir obyekt üzərində pəncərə sapı almaq daha yaxşıdır. Müvafiq çərçivənin sənədlərində obyekt tərəfindən əhatələnmiş pəncərə sapını qaytaran siniflərin metodları haqqında məlumat əldə edə bilərsiniz. Məsələn, MFC-də oxşar bir metod CWnd sinifinin GetSafeHwndudur.
Addım 2
Pəncərəni axtarıb tapın. İstifadə etdiyiniz çərçivə üçün FindWindow və FindWindowEx API funksiyalarından və ya uyğun sinif obyekt sarmalayıcılarından istifadə edin. Tapılsa, üst səviyyə pəncərəyə bir qayıt və ya uğursuzluqda NULL. Axtarış sinif adı və pəncərə adı ilə həyata keçirilir. Parametrlərin və funksiyanın aspektlərinin təsvirinə https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx linkində baxmaq olar. FindWindowEx funksiyası FindWindow-a bənzəyir, yalnız fərqi uşaq pəncərələrini axtarmasıdır. FindWindowEx sənədləri https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx saytında mövcuddur.
Addım 3
Dəstlərini sadalayarkən pəncərənin qolunu tapın. API funksiyaları EnumWindows, EnumChildWindows, EnumThreadWindows və ya istifadə etdiyiniz çərçivənin sinif obyektlərinin metodlarından istifadə edin. EnumWindows və EnumChildWindows funksiyaları sırasıyla üst səviyyəli pəncərələri və uşaq pəncərələrini sadalayır. EnumThreadWindows funksiyası, göstərilən mövzuya aid olmayan bütün pəncərələri sadalayır. Bu funksiyaların hər biri tapılan pəncərələrin tutacaqları əməliyyat zamanı parametr kimi ötürülən bir geri çağırma proseduruna bir göstəricidən keçirilməlidir. Sayımlama funksiyalarını birləşdirərək, geri çağırma prosedurunda pəncərə xüsusiyyətlərini əldə edərək təhlil edə bilərsiniz. tələb olunan pəncərə. Təsvir edilən funksiyalar üçün sənədlər linklərdə verilmişdir: - 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.
Addım 4
Bilinən koordinatlarda bir pəncərədən bir qol alın. WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx funksiyaları göstərilən nöqtəyə aid olan pəncərələrə qayıdışları qaytarır WindowFromPoint funksiyası istifadəsi ən asandır, lakin gizli və ya əlil pəncərələr üçün tutacaqları qaytarmır. Http://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx saytında istifadəsi ilə bağlı sənədləri tapa bilərsiniz. ChildWindowFromPoint və ChildWindowFromPointEx funksiyaları uşaq üçün tutacaqları tapır. müəyyən bir nöqtəyə aid olan bir ana pəncərənin pəncərələri. Bu vəziyyətdə, ChildWindowFromPointEx davranışı əlavə bir parametr istifadə edərək çevik şəkildə idarə edilə bilər. Bu funksiyalar üçün sənədlər aşağıdakı linklərlə təmin edilir: - 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.