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);
| 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. |
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.
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.
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.
Overzicht van venster klassen, venster klasse functies, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, WNDCLASSEX