Share via


SetWindowLong

Windows Mobile SupportedWindows Embedded CE Supported

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

Other Resources

SetLastError