Okno potomne

Okno potomne zostało zapisane w stylu WS_CHILD i ogranicza się do obszaru klienckiego jego okno nadrzędne. Aplikacja używa zazwyczaj okien podrzędnych podzielenie obszaru klienckiego okno nadrzędne na obszarach funkcjonalnych. Tworzenie okna podrzędnego określając styl WS_CHILD w funkcji funkcji CreateWindowEx.

Okno potomne muszą mieć okno nadrzędne. Okno nadrzędne może być okna, okno wyskakujące lub nawet innego okna podrzędnego. Okno nadrzędne można określić podczas wywoływania funkcji CreateWindowEx. Jeśli określić styl WS_CHILD w funkcji CreateWindowEx , ale nie zostanie okno nadrzędne, system nie tworzyć okna.

Okna podrzędnego ma obszaru klienckiego, ale nie innych funkcji, chyba że są one wyraźnie zażąda. Aplikacji można zażądać tytuł paska menu Okno, zminimalizować i zmaksymalizować przyciski, obramowanie i pasków przewijania okna dziecka, ale okna podrzędnego nie ma menu. Jeżeli aplikacja określi uchwyt menu, albo gdy rejestruje klasy okna dziecka lub tworzy okno podrzędne, uchwyt menu jest ignorowane.

Pozycjonowanie

System zawsze pozycje okien podrzędnych względem lewego górnego rogu obszaru klienckiego jego okno nadrzędne. Żadna część okna podrzędnego pojawia się coraz poza granice jego okno nadrzędne. Jeśli aplikacja tworzy okno potomne, który jest większy niż okno nadrzędne lub pozycje okna podrzędnego tak, że niektóre lub wszystkie okna podrzędnego wykracza poza granice obiektu nadrzędnego, system klipów w oknie dziecka; oznacza to, że część spoza obszaru klienckiego okno nadrzędne nie jest wyświetlana. Działań, które wpływają na okno nadrzędne można także wpływać następujące okno podrzędne.

Okno nadrzędne Okno potomne
Zniszczone Zniszczone przed okno nadrzędne.
Ukryte Ukryty, zanim okno nadrzędne jest ukryty. Okna podrzędnego jest widoczny tylko wtedy, gdy widoczny jest okno nadrzędne.
Przeniesione Przeniesione z obszaru klienckiego okno nadrzędne. Okno podrzędne jest odpowiedzialny za malowanie obszaru klienckiego po przeprowadzce.
Pokazano Wyświetlane po przedstawiono okno nadrzędne.

Obcinanie

System nie automatycznie klipu okna podrzędnego z obszaru klienckiego okno nadrzędne. Oznacza to, że okno nadrzędne rysuje nad okno podrzędne wykonuje dowolnego rysunku w tej samej lokalizacji okna podrzędnego. Jednakże system klipu okno podrzędne z obszaru klienckiego okno nadrzędne, jeśli okno nadrzędne zostało zapisane w stylu WS_CLIPCHILDREN. Jeśli okno podrzędne jest przycięty, okno nadrzędne nie jest możliwe rysowanie nad nim.

Okno potomne mogą się nakładać innych okien podrzędnych, w tym samym obszarze klienta. Okno potomne, który udostępnia to samo okno nadrzędne jako jednego lub więcej innych okien podrzędnych nosi nazwę elementu równorzędnego okna. Potomka systemu windows można rysować w drugiej strony klienta obszaru, o ile jedno z okien podrzędnych zostało zapisane w stylu WS_CLIPSIBLINGS. Jeśli okno potomne ten styl, jakakolwiek część jego okno równorzędny, w którym mieści się w oknie dziecko jest przycięty.

Jeśli okno zostało zapisane w stylu WS_CLIPCHILDREN lub WS_CLIPSIBLINGS, występuje, nieznaczny spadek wydajności. Każde okno zajmuje zasoby systemowe, więc aplikacja nie należy używać okien podrzędnych bezkrytycznie. Dla najlepszego aktora aplikacja, która wymaga logicznie podzielenie jej głównego okna powinny uczynić w procedurze okna głównego okna, zamiast przy użyciu okien podrzędnych.

Relacji okno nadrzędne

Aplikację można zmienić okno nadrzędne istniejące okno potomne przez wywołanie funkcji SetParent . W tym przypadku systemu usuwa okno podrzędne z obszaru klienckiego starych okno nadrzędne i przenosi je do obszaru klienckiego nowe okno nadrzędne. SetParent Określa dojście NULL, okna pulpitu staje się nowe okno nadrzędne. W tym przypadku okno podrzędne jest rysowany na pulpicie, poza granicami inne okno. Funkcja GetParent pobiera dojście do okna podrzędnego okno nadrzędne.

Okno nadrzędne zwalnia część obszaru klienckiego do okna podrzędnego, a okno podrzędne odbiera wszystkie dane wejściowe z tego obszaru. Klasy okna nie musi być taka sama dla każdej z okien podrzędnych okno nadrzędne. Oznacza to, że aplikacja można wypełnić okno nadrzędne z okien podrzędnych, które wyglądają inaczej i wykonywania różnych zadań. Na przykład pojawia się okno dialogowe może zawierać wiele typów formantów, każdy jedno okno potomne, która akceptuje różnych rodzajów danych od użytkownika.

Okno dziecko ma tylko jedno okno nadrzędne, ale jednostka dominująca może zawierać dowolną liczbę okien podrzędnych. Każde z okien podrzędnych, z kolei, mogą mieć okien podrzędnych. W tym łańcuchu windows każde z okien podrzędnych jest nazywany podrzędnych okno oryginalne okno nadrzędne. Aplikacja używa funkcji IsChild do wykrycia, czy danym oknem jest dziecko lub podrzędnych oknie okno nadrzędne danego.

Funkcja EnumChildWindows wylicza okien podrzędnych okno nadrzędne. Następnie EnumChildWindows przekazuje dojścia do każdego okna podrzędnego do funkcji wywołania zwrotnego zdefiniowanych przez aplikację. Również wyliczane są podrzędne windows okno nadrzędne danego.

Wiadomości

System przechodzi dziecko komunikaty wejściowe okna bezpośrednio do okna dziecka; wiadomości nie są przekazywane za pośrednictwem okno nadrzędne. Jedynym wyjątkiem jest w Jeśli okno dziecko zostało wyłączone przez funkcję EnableWindow . W tym przypadku system przekazuje komunikaty wejściowe, które byłyby poszły w oknie dziecko, aby oknie nadrzędnym zamiast. To pozwala na okno nadrzędne do zbadania komunikaty wejściowe i włącz okno podrzędne, w razie potrzeby.

Okno potomne mogą mieć identyfikator unikatową liczbą całkowitą. Identyfikatory okno podrzędne są ważne, podczas pracy z kontroli systemu windows. Aplikacji kieruje kontroli działalności przez wysłaniem wiadomości. Aplikacja używa formantu podrzędne okno identyfikator, aby skierować wiadomości do formantu. Ponadto formant wysyła komunikaty powiadamiające do jego okno nadrzędne. Powiadomienie zawiera formantu podrzędne okno identyfikator, którą nadrzędny używa do określenia których kontrola wysłał wiadomość. Aplikacja określa identyfikator okno potomne dla innych rodzajów okien podrzędnych przez ustawienie parametru hMenu funkcję funkcji CreateWindowEx na wartość zamiast uchwyt menu.

Index