SetWindowLong

De functie SetWindowLong wordt een kenmerk van het opgegeven venster. De functie stelt ook een 32-bits (lange) waarde op de gespecificeerde offset in het venster extra geheugen van een venster.

Lang SetWindowLong) HWND  hWnd, / / verwerken van vensterintnIndex, / / offset waarde instellenLangedwNewLong / / nieuwe waarde);
 

Parameters

hWnd
Ingang naar de venster en, indirect, de klasse waartoe het venster behoort.
nIndex
Geeft de op nul gebaseerde verschuiving naar de waarde moet worden ingesteld. Geldige waarden zijn in het bereik nul door het aantal bytes van het geheugen van de extra venster, minus 4; bijvoorbeeld, als u 12 of meer bytes van extra geheugen opgegeven, zou een waarde van 8 een index op de derde 32-bits integer. Een andere waarde wilt instellen, een van de volgende waarden opgeven:
Waarde Actie
GWL_EXSTYLE Stelt een nieuwe venster stijl uitgebreid.
GWL_STYLE Hiermee stelt u een nieuwe stijl van venster.
GWL_WNDPROC Hiermee stelt u een nieuw adres voor de venster-procedure.
GWL_HINSTANCE Hiermee stelt u een nieuwe toepassing sessiehandler.
GWL_ID Hiermee stelt u een nieuwe id van het venster.
GWL_USERDATA Hiermee stelt u de 32-bits waarde die is gekoppeld aan het venster. Elk venster heeft een overeenkomstige 32-bits waarde die bestemd zijn voor gebruik door de toepassing waarmee het venster is gemaakt.

De volgende waarden zijn ook beschikbaar wanneer de hWnd parameter een dialoogvenster identificeert:
Waarde Actie
DWL_DLGPROC Hiermee stelt u het nieuwe adres van het dialoogvenster vak procedure.
DWL_MSGRESULT Hiermee stelt u de retourwaarde van een bericht in het dialoogvenster vak procedure verwerkt.
DWL_USER Hiermee stelt u nieuwe extra informatie dat is eigen aan de toepassing, zoals de handgrepen of aanwijzers.

dwNewLong
Hiermee geeft u de vervangende waarde.

Retourwaarden

Als de functie slaagt, is de geretourneerde waarde de vorige waarde van de opgegeven 32-bits geheel getal.

Als de functie mislukt, is de retourwaarde nul. Te krijgen uitgebreide foutinformatie, Bel GetLastError.

Als de vorige waarde van de opgegeven 32-bits geheel getal gelijk is aan nul, en de functie slaagt, de retourwaarde is nul, maar de functie wordt informatie over de laatste fout niet gewist. Dit maakt het moeilijk om te bepalen van succes of mislukking. Om dit te behandelen, moet u de laatste foutinformatie uitschakelen door te bellen SetLastError(0) voor het aanroepen van SetWindowLong. Vervolgens, functie mislukking wordt aangegeven door een retourwaarde van nul en een GetLastError resultaat die ongelijk is aan nul.

Opmerkingen

De functie SetWindowLong mislukt als het venster dat is opgegeven met de parameter hWnd niet tot hetzelfde proces als de aanroepende draad behoort.

Bepaalde venster gegevens is in de cache, zodat wijzigingen die u aanbrengt met behulp van SetWindowLong niet van kracht zal totdat u de functie SetWindowPos aanroepen.

Als u SetWindowLong met de GWL_WNDPROC-index gebruikt ter vervanging van de venster-procedure, moet de procedure venster voldoen aan de richtlijnen gespecificeerd in de beschrijving van de WindowProc callback functie.

Als u SetWindowLong met de DWL_MSGRESULT-index gebruikt voor de retourwaarde voor een bericht verwerkt door een dialoogvenster procedure instelt, moet u terugkeren waar direct daarna. Anders, als u een functie die resulteert in uw dialoogvenster procedure ontvangen van een bericht venster aanroept, het geneste venster bericht kan overschrijven de geretourneerde waarde die u hebt ingesteld met DWL_MSGRESULT.

SetWindowLong aanroepen met de GWL_WNDPROC-index wordt gemaakt van een subklasse van de klasse venster gebruikt voor het maken van het venster. Een toepassing kan subklasse een klasse systeem, maar moet niet de subklasse een venster klasse door een ander proces gemaakt. De functie SetWindowLong maakt de subklasse venster door het veranderen van de venster-procedure die is gekoppeld aan een bepaald venster klasse, waardoor het systeem de nieuwe procedure van het venster in plaats van de vorige Bel. Een toepassing moet niet verwerkt door de nieuwe procedure van het venster aan de vorige venster procedure door te bellen CallWindowProcberichten doorgeven. De toepassing kan een keten van venster procedures.

Extra venster geheugen reserveren door te geven een andere waarde dan nul in het lid cbWndExtra van de WNDCLASSEX structuur gebruikt met de functie RegisterClassEx.

Niet moet u SetWindowLong aanroepen met de GWL_HWNDPARENT-index aan het bovenliggende object van een onderliggend venster wijzigen. Gebruik in plaats daarvan de SetParent -functie.

Windows CE: De parameter nIndex moet een veelvoud van 4 bytes.

Unaligned toegang wordt niet ondersteund.

De volgende nIndex parameterwaarden worden niet ondersteund:

GWL_HINSTANCE

GWL_HWNDPARENT

GWL_USERDATA

Windows CE versie 2.0 en hoger ondersteunen de DWL_DLGPROC waarde in de parameter nIndex , maar niet in Windows CE 1.0.

Syntaxisinfo

nbsp;áWindows &NT: versie 3.1 of hoger vereist.
Windows:Windows 95 of hoger vereist.
Windows CE:Versie 1.0 of hoger vereist.
Header:Verklaard in winuser.h.
Bibliotheek importeren:User32.lib gebruiken.
Unicode:Ge´mplementeerd als Unicode en ANSI-versies van Windows NT.

Zie ook

Overzicht van venster klassen, venster klasse functies, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, WNDCLASSEX

Index