Subclassificação global

Globalmente subclasse um classe de janela, o aplicativo deve ter um identificador para uma janela da classe. O aplicativo precisa também a alça para remover a subclasse. Para obter o identificador, um aplicativo geralmente cria uma janela oculta da classe a ser subclasse. Depois de obter o identificador, o aplicativo chama a função SetClassLong , especificando o identificador, o sinalizador GCL_WNDPROC e o endereço do procedimento subclasse. SetClassLong retorna o endereço do procedimento de janela original da classe.

O endereço do procedimento de janela original é usado em subclassificação global da mesma maneira que é usado em subclassificação de instância. O procedimento subclasse transmite mensagens para o procedimento de janela original por chamado CallWindowProc. O aplicativo remove a subclasse da classe de janela por chamado SetClassLong novamente, especificando o endereço do procedimento de janela original, o sinalizador GCL_WNDPROC e o identificador para uma janela da classe que está sendo subclasse. Um aplicativo que globalmente subclasses uma classe de Controlarar deve remover a subclasse quando o aplicativo termina; caso contrário, pode ocorrer um erro irrecuperável no sistema.

Subclassificação global tem as mesmas limitações como subclassificação de instância, além de algumas restrições adicionais. Um aplicativo não deve usar o adicional bytes para a classe ou a instância de janela sem saber exatamente como o original procedimento janela usa-los. Se o aplicativo deve associar dados com uma janela, ele deve usar janela Propriedades.

Index