O SetWindowLong função é alterado um atributo da janela especificada. A função também define um 32-bit (longo) valor no deslocamento especificado para a adicional memória janela de uma janela.
LONG SetWindowLong ( HWND hWnd, / / identificador da janelaintnIndex, / / deslocamento do valor a ser definidoLongodwNewLong / / novo valor);
Valor | Ação |
---|---|
GWL_EXSTYLE | Define um novo estilo de janela estendido. |
GWL_STYLE | Define um novo estilo de janela. |
GWL_WNDPROC | Define um novo endereço para o procedimento de janela. |
GWL_HINSTANCE | Define um novo identificador de instância de aplicativo. |
GWL_ID | Define um novo identificador de janela. |
GWL_USERDATA | Define o 32-bit valor associado com a janela. Cada janela possui um correspondente 32-bit valor destinado ao uso pelo aplicativo que criou a janela. |
Os valores a seguir também estão disponíveis quando o hWnd parâmetro identifica uma caixa de diálogo:
Valor | Ação |
---|---|
DWL_DLGPROC | Define o novo endereço do procedimento de caixa de diálogo. |
DWL_MSGRESULT | Define o valor de retorno de uma mensagem processada no procedimento de caixa de diálogo. |
DWL_USER | Define novas informações extras que são particulares para o aplicativo, such as alças ou ponteiros. |
Se a função for bem-sucedido, o valor de retorno é o valor anterior da 32-bit especificado inteiro.
Se a função falhar, o valor de retorno é zero. Para informações de erro estendidas get, chamar GetLastError.
Se o valor anterior da 32-bit especificado inteiro é zero e a função for bem-sucedido, o valor de retorno é zero, mas a função não limpa as últimas informações de erro. Isso torna difícil determinar o sucesso ou fracasso. Para lidar com isso, você deve limpar as últimas informações de erro chamando SetLastError(0) antes de chamar SetWindowLong. Em seguida, falha de função será indicada por um valor de retorno de zero e um resultado de GetLastError é diferente de zero.
O SetWindowLong função falhará se a janela especificada pelo hWnd parâmetro não pertence ao mesmo processo como o thread de chamada.
Determinados dados janela é armazenado em cache, para que as alterações feitas usando SetWindowLong não terão efeito até que você chamar o SetWindowPos função.
Se você usar o SetWindowLong com o índice GWL_WNDPROC para substituir o procedimento de janela, o procedimento janela deve estar em conformidade com as diretrizes especificadas na descrição das WindowProc função callback.
Se você usar SetWindowLong com o índice DWL_MSGRESULT para definir o valor de retorno para uma mensagem processada através de um processo de diálogo, você deve retornar TRUE diretamente posteriormente. Caso contrário, se você chamar qualquer função que resulta no seu procedimento de diálogo recebe uma mensagem de janela, a mensagem de janela aninhada poderia substituir o valor de retorno que você definir usando DWL_MSGRESULT.
Chamar SetWindowLong com o índice GWL_WNDPROC cria uma subclasse da classe janela usado para criar a janela. Um aplicativo pode subclasse uma classe de sistema, mas deve não subclasse um classe de janela criado por outro processo. O SetWindowLong função cria a subclasse janela, alterando o procedimento janela associado com uma classe janela específica, fazendo com que o sistema para chamar o procedimento nova janela instead of anterior. Um aplicativo deve transmitir qualquer mensagem não processada pelo novo procedimento de janela para o procedimento janela anterior por chamado CallWindowProc. Isso permite que o aplicativo para criar uma Cadeia de procedimentos de janela.
Reserve adicional memória janela, especificando um valor diferente de zero no cbWndExtra membro da estrutura WNDCLASSEX usado com a função de RegisterClassEx.
Você não deve chamar SetWindowLong com o índice GWL_HWNDPARENT para alterar o pai de uma janela filho. Em vez disso, use o SetParent função.
Windows CE: O nÍndice parâmetro deve ser um múltiplo de 4 bytes.
Não é com suporte unaligned acessar.
Não há suporte para os seguintes valores de parâmetro nIndex:
GWL_HINSTANCE
GWL_HWNDPARENT
GWL_USERDATA
Versões do Windows CE 2.0 e posteriores suportam o valor DWL_DLGPROC in a nÍndice parâmetro, mas não Windows CE 1.0.
nbsp; Windows &NT: requer a versão 3.1 ou posterior.
Windows:Requer o Windows 95 ou posterior.
Windows CE:Requer versão 1.0 ou posterior.
Cabeçalho:Declarado em WinUser. h.
Biblioteca de importação:Use user32.lib.
Unicode:Implementado como versões Unicode e ANSI no Windows NT.
Visão geral da janela Classes, funções de classe de janela, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, WNDCLASSEX