SetWindowLong
9/9/2008
Essa função altera um atributo da janela especificada. SetWindowLong Também define um 32-bit (EXTENSA) valor no deslocamento especificado para o adicional memória janela de uma janela.
Syntax
LONG SetWindowLong(
HWND hWnd,
int nIndex,
LONG dwNewLong
);
Parameters
- hWnd
Identificador para a janela e, indiretamente, a classe à qual pertence a janela.
nÍndice
Especifica o deslocamento baseada em zero para o valor seja definido. Os valores válidos estão no intervalo zero através de número de bytes de adicional memória janela, menos 4; de exemplo, se você especificou 12 ou mais bytes do adicional memória, um valor igual a 8 seria um índice para o terceiro 32-bit inteiro. Para Windows Embedded CE, o deslocamento de byte, mas deve ser um múltiplo de 4 bytes.Para definir qualquer outro valor, especificar um do seguinte valores.
Valor Descrição GWL_EXSTYLE
Define um novo estendido estilo janela.
GWL_STYLE
Define um novo estilo janela.
GWL_WNDPROC
Define um novo endereço para o procedimento janela. Não é possível alteração este atributo se a janela não pertencer para o mesmo processo como o segmento chamado.
GWL_ID
Define um novo identificador da janela.
GWL_USERDATA
Conjuntos de 32-bit valor associado com a janela. Cada janela possui um correspondente 32-bit valor destinado ao uso pelo aplicativo que criou a janela. Windows CE 2.0 e posterior suporte que esse valor, mas Windows CE 1.0 e 1.01 não.
O seguinte valores também estão disponível quando o hWnd parâmetro identifica uma caixa diálogo.
Valor Descrição DWL_DLGPROC
Define o novo endereço do procedimento de caixa de diálogo. Windows CE 2.0 e posterior suporte que esse valor, mas Windows CE 1.0 e 1.01 não.
DWL_MSGRESULT
Define a valor de retorno de uma mensagem processada no procedimento de caixa de diálogo.
DWL_USER
Define novos adicional informações que é particulares para o aplicativo, such as alças ou ponteiros.
- dwNewLong
Especifica o valor de substituição.
Return Value
O valor anterior da 32 especificado-inteiro bit indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError.
Se o valor anterior da 32 especificado - bit inteiro é zero e a função for bem-sucedido, o valor de retorno é zero, mas a função não Clear as últimos informações de erro. Isso dificulta determinar o sucesso ou falha. Para lidar com isso, você deve Clear as últimos informações de erro por chamado SetLastError (0) Antes chamado SetWindowLong. Em seguida, função falha é indicada por um valor de retorno de zero e um GetLastError resultado que seja diferente de zero.
Remarks
O SetWindowLong função falhará se a janela especificada pelo hWnd parâmetro não pertence ao mesmo processo como o segmento chamado.
Acessar unaligned não é com suporte.
Determinados dados janela é armazenado em cache, as alterações caso você tornar usando SetWindowLong não terão efeito até você chamar o SetWindowPos função.
Se você usar SetWindowLong Com o índice GWL_WNDPROC para substituir o procedimento janela, o procedimento janela deve estar de acordo com as diretrizes especificados 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 por um procedimento diálogo, você deve retornar TRUE diretamente posteriormente. Caso contrário, se você chamar qualquer função que resulta em seu procedimento diálogo recebendo uma mensagem janela, a mensagem aninhadas janela pode substituir o valor de retorno é definido usando DWL_MSGRESULT.
Chamando SetWindowLong Com o GWL_WNDPROC índice cria uma subclasse do classe de janela usado para criar a janela. Um aplicativo pode subclasse um 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 procedimento nova janela para o procedimento janela anterior por chamado CallWindowProc. Isso permite que o aplicativo para criar um encadear dos procedimentos janela.
Você não deve chamar SetWindowLong Com o índice GWL_HWNDPARENT para alteração de pai de uma janela filho. Em vez disso, use o SetParent função.
Requirements
Header | winuser.h |
Windows Embedded CE | Windows CE 1.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |
See Also
Reference
Window Class Functions
CallWindowProc
GetWindowLong
RegisterClass
SetParent
SetWindowPos
WindowProc
WNDCLASS