Registrar uma classe de janela

Uma classe de janela define os atributos de uma janela, como o seu estilo, ícone, cursor, menu e janela procedimento. O primeiro passo para registrar uma classe de janela é preencher uma estrutura de WNDCLASSEX com as informações de classe janela. Para obter mais informações, consulte elementos de uma classe de janela. Em seguida, passe a estrutura para a função de RegisterClassEx . Para obter mais informações, consulte Usando Classes de janela.

Para registrar uma classe de aplicativo global, especifica o estilo CS_GLOBALCLASS no estilo membro da estrutura WNDCLASSEX . Ao registrar uma classe de aplicativo local, não especifique o estilo CS_GLOBALCLASS.

Se você registrar a classe janela usando a versão ANSI do RegisterClassEx, RegisterClassExA, o aplicativo solicita que os parâmetros de texto de passagem de sistema de mensagens do Windows da classe criada usando o caractere ANSI definidos; Se você registrar a classe usando a versão Unicode de RegisterClassEx, RegisterClassExW, o aplicativo solicita que o sistema de passar parâmetros de texto das mensagens do Windows da classe criada usando o conjunto de caracteres Unicode. A função IsWindowUnicode permite que os aplicativos consultem a natureza de cada janela. Para obter mais informações sobre as funções ANSI e Unicode na API do Win32, consulte Protótipos de função de Win32.

O arquivo executável ou DLL que registrou a classe é o proprietário da classe. O sistema determina a propriedade de classe de hInstance membro da estrutura WNDCLASSEX passado para a função de RegisterClassEx quando a classe é registrada. Para DLLs, o hInstance membro deve ser o identificador de instância da DLL.

Windows 95: A classe é destruída quando o proprietário fecha ou é descarregado. Por esse motivo, o processo deverá destruir todas as janelas usando a classe antes do proprietário fecha ou é descarregado.

Windows NT: A classe não é destruída quando a DLL que é o dono é descarregada. Portanto, se o sistema chama o procedimento janela para uma janela de classe, ele irá causar uma violação de acesso, porque o DLL que contém o procedimento de janela não está mais na memória. O processo deve destruir todas as janelas usando a classe antes que a DLL é descarregada e chamar a função UnregisterClass.

Index