GetMessage

Funcția GetMessage preia un mesaj din coada de mesaje firul de apel și îl plasează în structura specificate. Această funcție poate prelua atât mesajele asociate cu o fereastră specificate și mesaje thread postat prin intermediul PostThreadMessage funcție. Funcția preia mesajele care se află într-un anumit interval de valori de mesaj. GetMessage nu prelua mesajele pentru windows care aparțin alte fire sau aplicații.

(BOOL GetMessage LPMSG  lpMsg, / / adresa de structura cu mesajHWNDhWnd, / / ocupa de fereastraUINTwMsgFilterMin, / / primul mesajUINTwMsgFilterMax / / ultimul mesaj);
 

Parametrii

lpMsg
Indicator spre o structură MSG care primește informații mesaj din fir mesaj coada.
hWnd
Ocupa în fereastra ale căror mesaje sunt pentru a fi adus. O valoare are o semnificație specială:
Valoarea Sensul
NULL GetMessage preia mesaje pentru orice fereastră care aparține firul de apel și mesaje thread Postat la firul de apel prin intermediul PostThreadMessage.

wMsgFilterMin
Specifică valoarea cea mai scăzută valoare de mesaj pentru a fi adus întreg.
wMsgFilterMax
Specifică valoarea întreagă a cea mai mare valoare de mesaj pentru a fi adus.

Valorile întroarse

Dacă funcția regăsește un mesaj altele decât WM_QUIT, valoarea returnată este nenul.

Dacă funcția regăsește mesajul WM_QUIT, valoarea returnată este zero.

Dacă există o eroare, valoarea returnată este -1. De exemplu, funcția nu reușește dacă hWnd este un mâner de fereastră incorecte sau lpMsg este un indicator nevalid. Pentru a obține extins informa?ii eroare, apel GetLastError.

Observații

O cerere de obicei utilizează valoarea returnată pentru a determina dacă sfârșitul bucla mesajul principal ?i ie?i?i din program.

Funcția GetMessage preia numai mesajele asociate cu fereastra identificate de parametrul hWnd sau la oricare dintre copii sale, ca specificată de funcția IsChild , și în intervalul de valori mesajul dat de parametrii de wMsgFilterMin și wMsgFilterMax . Dacă hWnd este NULL, GetMessage preia mesaje pentru orice fereastră care aparține firul de apel și mesaje thread Postat la firul de apel prin intermediul PostThreadMessage. GetMessage nu prelua mesajele pentru windows care aparțin alte fire nici pentru fire altele decât firul de asteptare, chiar dacă hWnd nu este nul. Thread mesaje, Postat de funcția PostThreadMessage , mesaj hWnd valoare NULL. Dacă wMsgFilterMin și wMsgFilterMax sunt ambele zero, GetMessage întoarce toate mesajele disponibile (care este, nu gama de filtrare se efectuează).

Constantele de WM_KEYFIRST și WM_KEYLAST poate fi folosit ca filtru valorile pentru a prelua toate mesajele legate de input tastatură; constantele de WM_MOUSEFIRST și WM_MOUSELAST pot fi utilizate pentru a prelua toate mesajele de mouse-ul. Dacă parametrii wMsgFilterMin ?i wMsgFilterMax sunt ambele zero, funcția GetMessage întoarce toate mesajele (care este fără a efectua orice filtrare).

GetMessage nu elimina WM_PAINT mesajele din coada de așteptare. Mesajele rămân în coada de așteptare până când prelucrate.

Rețineți că valoarea returnată de funcția poate fi diferită de zero, zero, sau -1. Astfel, ar trebui să evite cod ca asta:

în timp ce (GetMessage (lpMsg, hWnd, 0, 0))... 

 

Posibilitatea de a o valoare-1 înseamnă că astfel de cod poate duce la erori fatale cerere.

QuickInfo

nbsp; Windows &NT: necesită versiunea 3.1 sau mai târziu.
Windows:Necesită Windows 95 sau o versiune ulterioară.
Windows CE:Necesită versiunea 1.0 sau mai târziu.
Antet:A declarat în winuser.h.
Import Biblioteca:Utilizarea user32.lib.
Unicode:Pus în aplicare ca Unicode și ANSI versiuni Windows NT.

A se vedea, de asemenea

Mesaje și mesaj cozile de prezentare, mesaj și mesaj coada de funcții, IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage

Index