Jak Zdobyć Klamkę Do Okna?

Spisu treści:

Jak Zdobyć Klamkę Do Okna?
Jak Zdobyć Klamkę Do Okna?

Wideo: Jak Zdobyć Klamkę Do Okna?

Wideo: Jak Zdobyć Klamkę Do Okna?
Wideo: Jak zdemontować klamkę w oknie plastikowym PCV | ForumWiedzy 2024, Może
Anonim

Koncepcja interfejsu użytkownika w systemie Windows opiera się na koncepcji okna. Dialogi, przyciski, panele kontrolne, listy to wszystkie okna. Dlatego, aby wykonać jakąkolwiek akcję z dowolnym elementem interfejsu własnej lub cudzej aplikacji, musisz zdobyć klamkę okna.

Jak zdobyć klamkę do okna?
Jak zdobyć klamkę do okna?

Niezbędny

  • - Pakiet SDK platformy;
  • - kompilator.

Instrukcje

Krok 1

Zdobądź klamkę do okna, tworząc ją. Wywołaj funkcje API CreateWindow lub CreateWindowEx lub wywołaj odpowiednie metody opakowujące (na niezbędnych obiektach) klas używanego frameworka lub biblioteki, które hermetyzują funkcjonalność pracy z oknami lub kontrolkami. Funkcje CreateWindow i CreateWindowEx bezpośrednio zwracają uchwyt okna po pomyślnym utworzeniu. Jeśli wywołanie nie powiedzie się, zwraca NULL. Kod przyczyny błędu można zażądać za pomocą funkcji API GetLastError. Prototypy oraz szczegółowe opisy parametrów funkcji CreateWindow i CreateWindowEx można znaleźć pod linkami https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx i https://msdn.microsoft.com/en-us/library/windows/desktop/ms632680% 28v = vs.85% 29.aspx Podczas korzystania z klas różnych frameworków tworzenie obiektów okien systemu operacyjnego może nastąpić albo jawnie (poprzez wywołanie metody) lub niejawnie (wdrożenie strategii RAII). Dlatego lepiej jest założyć klamkę okna na gotowy zainicjalizowany obiekt. Możesz dowiedzieć się o metodach klas, które zwracają uchwyt okna hermetyzowany przez obiekt w dokumentacji odpowiedniego frameworka. Na przykład w MFC podobną metodą jest GetSafeHwnd klasy CWnd.

Krok 2

Znajdź uchwyt do okna, szukając go. Użyj funkcji API FindWindow i FindWindowEx lub odpowiednich wrapperów obiektów klasy dla używanej platformy FindWindow zwraca uchwyt do okna najwyższego poziomu, jeśli zostanie znaleziony, lub NULL w przypadku niepowodzenia. Wyszukiwanie odbywa się według nazwy klasy i tytułu okna. Opis parametrów i aspektów działania funkcji można znaleźć pod linkiem https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. funkcja FindWindowEx jest podobna do funkcji FindWindow z tą różnicą, że wyszukuje okna podrzędne. Dokumentacja FindWindowEx jest dostępna pod adresem

Krok 3

Znajdź klamkę do okna podczas wystawiania swoich zestawów. Użyj funkcji API EnumWindows, EnumChildWindows, EnumThreadWindows lub metod obiektów klas frameworka, którego używasz. Funkcje EnumWindows i EnumChildWindows wyliczają odpowiednio okna najwyższego poziomu i okna podrzędne. Funkcja EnumThreadWindows wylicza wszystkie okna niepodrzędne określonego wątku. Każdej z tych funkcji należy przekazać wskaźnik do procedury wywołania zwrotnego, do którego uchwyty znalezionych okien zostaną przekazane jako parametry podczas działania. Łącząc funkcje wyliczające, pobierając i analizując właściwości okna w procedurze wywołania zwrotnego, można znaleźć uchwyt wymagane okno. Dokumentacja opisanych funkcji znajduje się pod linkami: - 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.

Krok 4

Uzyskaj uchwyt do okna o znanych współrzędnych. Funkcje WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx zwracają uchwyty do okien, do których należy określony punkt. Funkcja WindowFromPoint jest najłatwiejsza w użyciu, ale nie zwraca uchwytów dla okien ukrytych lub wyłączonych. Dokumentację dotyczącą jego użycia można znaleźć pod adresem https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Funkcje ChildWindowFromPoint i ChildWindowFromPointEx znajdują uchwyty dla elementu podrzędnego okna danego okna nadrzędnego należące do danego punktu. W takim przypadku zachowanie ChildWindowFromPointEx można elastycznie kontrolować za pomocą dodatkowego parametru. Dokumentacja tych funkcji jest dostępna za pomocą łączy: - 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.

Zalecana: