GetMessage

GetMessage -funksjonen henter en melding fra den kallende tråden meldingskøen og plasserer den på den angitte strukturen. Denne funksjonen kan hente begge meldinger som er knyttet til et angitt vindu og tråd meldinger som er lagt inn via PostThreadMessage funksjon. Funksjonen henter meldinger som ligger innenfor et angitt område av verdier for meldingen. GetMessage ikke hente meldinger for windows som tilhører andre tråder eller programmer.

() BOOL GetMessage LPMSG  lpMsg, / / adresse av strukturen med meldingHWNDhWnd, / / håndtere-vinduetUINTwMsgFilterMin, / / først messageUINTwMsgFilterMax / / sist message);
 

Parametere

lpMsg
Peker til en MSG struktur som mottar melding-informasjonen fra trådens meldingskøen.
hWnd
Håndtere til vinduet får meldinger er som skal hentes. Én verdi har en spesiell betydning:
Verdi Betydning
NULL GetMessage henter meldinger for alle vinduer som hører til den kallende tråden og tråd meldinger postet å kalle tråden via PostThreadMessage.

wMsgFilterMin
Angir heltallverdi på den laveste verdien som skal hentes.
wMsgFilterMax
Angir heltallverdi på den høyeste verdien som skal hentes.

Returverdier

Hvis funksjonen henter en melding annet enn WM_QUIT, er returverdien ikke-null.

Hvis funksjonen henter meldingen som WM_QUIT, er returverdien null.

Hvis det er en feil, er verdien som returneres -1. For eksempel mislykkes funksjonen hvis hWnd er en Ugyldig vindusreferanse eller lpMsg er en ugyldig peker. Til å vise utvidet feilinformasjon, kan du ringe GetLastError.

Merknader

Et program bruker vanligvis returverdien for å avgjøre om å avslutte hovedmeldingsløkke og avslutte programmet.

GetMessage -funksjonen henter bare meldinger som er knyttet til vinduet identifisert av parameteren hWnd , eller noen av sine barn, som angitt av IsChild -funksjonen, og er innenfor rekkevidde av meldingen verdier gitt av parameterne wMsgFilterMin og wMsgFilterMax . Hvis hWnd er NULL, henter GetMessage meldinger for alle vinduer som hører til den kallende tråden og tråd meldinger postet å kalle tråden via PostThreadMessage. GetMessage ikke hente meldinger for windows som tilhører andre tråder, heller ikke for tråder annet enn kalle tråden, selv om hWnd ikke er NULL. Tråd meldinger, skrevet av funksjonen PostThreadMessage har hWnd meldingen verdien NULL. Hvis wMsgFilterMin og wMsgFilterMax er både null, GetMessage returnerer alle tilgjengelige meldinger (det vil si at ingen område filtrering utføres).

WM_KEYFIRST og WM_KEYLAST-konstanter kan brukes som filterverdier til å hente alle meldinger som er knyttet til tastaturinndata; WM_MOUSEFIRST og WM_MOUSELAST-konstanter kan brukes til å hente alle meldingene på musen. Hvis parameterne wMsgFilterMin og wMsgFilterMax er både null, returnerer GetMessage -funksjonen alle tilgjengelige meldinger (som er, uten å utføre noen filtrering).

GetMessage fjerner ikke WM_PAINT-meldinger fra køen. Meldingene forblir i køen til behandlet.

Merk at funksjonen returverdien kan være ikke-null, null, og -1. Derfor bør du unngå kode som dette:

mens (GetMessage (lpMsg, hWnd, 0, 0))... 

 

Muligheten for en returverdi-1 betyr at slike kode kan føre til alvorlig programfeil.

Hurtiginformasjon

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.

Se også

Meldinger og melding køer oversikt, melding, og meldingen køen funksjoner, IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage

Index