Rejestrowanie klasy okna

Klasy okno definiuje atrybuty okna, takie jak jego procedury stylu, ikony, kursor, menu i okna. Pierwszym krokiem przy rejestrowaniu klasy okno jest wypełnienie w strukturze WNDCLASSEX informacjami klasy okna. Aby uzyskać więcej informacji zobacz elementy klasy okna. Następnie przekazać struktury do funkcji RegisterClassEx . Aby uzyskać więcej informacji zobacz Korzystanie z klasy okien.

Aby zarejestrować klasy globalnej aplikacji, należy określić styl CS_GLOBALCLASS w stylu członkiem struktury WNDCLASSEX . Podczas rejestrowania klasy lokalnej aplikacji, nie zostanie styl CS_GLOBALCLASS.

Jeśli zarejestrujesz klasy okna za pomocą wersja ANSI RegisterClassEx, RegisterClassExA, aplikacja żąda, aby ustawić parametry tekstu przebiegu systemu wiadomości do okna klasy utworzone przy użyciu znaku ANSI; Jeśli zarejestrujesz klasy przy użyciu wersji Unicode RegisterClassEx, RegisterClassExW, aplikacja żąda, że system przekazać parametry tekst wiadomości do okna klasy utworzonego przy użyciu zestawu znaków Unicode. Funkcja IsWindowUnicode umożliwia aplikacjom kwerendy charakter każdego okna. Aby uzyskać więcej informacji na temat funkcji ANSI i Unicode w Win32 API, zobacz Prototypy funkcji Win32.

Pliku wykonywalnego lub pliku DLL, który zarejestrował klasy jest właścicielem tej klasy. System Określa klasę własności od członka wystąpienie hInstance struktury WNDCLASSEX przekazany do funkcji RegisterClassEx , gdy klasa jest zarejestrowany. Biblioteki dll, członek wystąpienie hInstance w musi być uchwyt wystąpienia biblioteki DLL.

Systemu Windows 95: Klasa jest niszczony, kiedy właściciel zamyka lub jest zwolniony. Z tego powodu proces musi zniszczyć wszystkich okien za pomocą klasy, zanim właściciel zamyka lub jest zwolniony.

Systemu Windows NT: Klasa nie jest niszczony, kiedy biblioteka DLL, który jest jej właścicielem jest zwalniana. W związku z tym: Jeśli system wywołuje procedurę okna dla okna klasy, będzie to spowodować naruszenie zasad dostępu, ponieważ biblioteka DLL zawierającej procedurę okna nie jest już w pamięci. Proces musi zniszczyć wszystkich okien za pomocą klasy, zanim biblioteki DLL jest zwolniony i wywołać funkcję UnregisterClass.

Index