Funksjonen SetWindowLong endrer et attributt for det angitte vinduet. Funksjonen angir også en 32-biters (lang) verdi på den angitte forskyvningen i ekstra vinduet minnet av et vindu.
Lang SetWindowLong) HWND hWnd, / / håndtere-vinduetIntnIndex, / / forskyvning av verdi for å angiLangdwNewLong / / ny verdi);
Verdi | Handling |
---|---|
GWL_EXSTYLE | Angir en ny utvidet Vindustype. |
GWL_STYLE | Angir en ny vindu-stil. |
GWL_WNDPROC | Angir en ny adresse for vindusprosedyre. |
GWL_HINSTANCE | Angir det nye programmet forekomst håndtaket. |
GWL_ID | Angir en ny identifikator i vinduet. |
GWL_USERDATA | Angir 32-biters verdien forbundet med vinduet. Hvert vindu har en tilsvarende 32-biters verdi beregnet på bruk av programmet som opprettet vinduet. |
Følgende verdier er også tilgjengelige når parameteren hWnd identifiserer en dialogboks:
Verdi | Handling |
---|---|
DWL_DLGPROC | Angir den nye adressen i dialogboksen boksen fremgangsmåten. |
DWL_MSGRESULT | Angir verdien som returneres av en melding som er behandlet i dialogboksen boksen prosedyre. |
DWL_USER | Sett ny ekstra informasjon som er privat til programmet, for eksempel håndtak eller pekere. |
Hvis funksjonen er vellykket, er verdien som returneres av forrige verdi i det angitte 32-biters heltallet.
Hvis funksjonen mislykkes, er verdien som returneres Null. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.
Hvis den forrige verdien av det angitte 32-biters heltallet er null, og funksjonen lykkes, returverdien er null, men funksjonen sletter ikke siste feilinformasjonen. Dette gjør det vanskelig å fastslå suksess eller fiasko. For å håndtere dette, bør du fjerne siste feilinformasjonen ved å kalle SetLastError(0) før du kaller SetWindowLong. Deretter, feil på funksjonen angis med en returverdi for null og et GetLastError resultat som er ikke-null.
Funksjonen SetWindowLong mislykkes hvis vinduet som er angitt av parameteren hWnd ikke tilhører samme prosess som kallende tråden.
Visse vinduet data er bufret, slik at endringer du har gjort med SetWindowLong ikke vil tre i kraft før du kaller funksjonen SetWindowPos.
Hvis du bruker SetWindowLong med GWL_WNDPROC-indeksen for å erstatte vindusprosedyre, vinduet prosedyren må være i overensstemmelse med retningslinjene som er angitt i beskrivelsen av tilbakeringingsfunksjonen WindowProc.
Hvis du bruker SetWindowLong med DWL_MSGRESULT-indeks for å angi returverdien for en melding som behandles av en prosedyre i dialogboksen, skal du returnere SANN direkte etterpå. Ellers, hvis du kaller en funksjon som resulterer i i dialogboksen-prosedyren, mottak av en melding i vinduet, nestede vinduet meldingen kan overskrive returverdien du angir ved hjelp av DWL_MSGRESULT.
Kaller SetWindowLong med GWL_WNDPROC-indeks, oppretter du en underklasse av vindusklasse som er brukt til å opprette vinduet. Et program kan underklassen som en systemklasse, men bør ikke underklasse en vindusklasse opprettet av en annen prosess. Funksjonen SetWindowLong oppretter vinduet underklassen ved å endre vindusprosedyre som er forbundet med en bestemt vindusklasse, noe som gjør systemet kalle den nye vinduet prosedyren i stedet for den tidligere. Et program må passere noen meldinger som ikke er behandlet av nye vinduet til den forrige prosedyren i vinduet, ved å kalle CallWindowProc. Dette gjør at programmet til å opprette en kjede av vinduet prosedyrer.
Reservere ekstra vinduet minne ved å angi en annen verdi enn null i cbWndExtra -medlem av WNDCLASSEX -strukturen som brukes sammen med RegisterClassEx -funksjonen.
Du må ikke kalle SetWindowLong med GWL_HWNDPARENT-indeksen du vil endre overordnet i et underordnet vindu. Bruk i stedet SetParent -funksjonen.
Windows CE: Parameteren nIndex må være et multiplum av 4 byte.
Ikke-justert access støttes ikke.
Følgende nIndex parameterverdiene støttes ikke:
GWL_HINSTANCE
GWL_HWNDPARENT
GWL_USERDATA
Windows CE versjon 2.0 og senere støtter DWL_DLGPROC-verdien i nIndex -parameteren, men ikke i Windows CE 1.0.
nbsp; Windows &NT: krever versjon 3.1 eller senere.
Windows:Krever Windows 95 eller senere.
Windows CE:Krever versjon 1.0 eller senere.
Topptekst:Deklarert i winuser.h.
Importere biblioteket:Bruk user32.lib.
Unicode:Implementert som Unicode- og ANSI-versjoner på Windows NT.
Vinduet klasser oversikt, vinduet klassen funksjoner, CallWindowProc, GetWindowLong, RegisterClassEx, SetParent, WindowProc, WNDCLASSEX