Przetwarzanie zdarzeń przez aplikację polega na wykonywaniu w pętli funkcji: GetMessage – pobiera zdarzenie z kolejki TranslateMessage – tłumaczy niektóre zdarzenia dotyczące wciśnięcia przycisków klawiatury DispatchMessage – pobrane zdarzenie jest kierowane do wcześniej zdefiniowanej procedury docelowego okna, która je obsługuje (tzw. window procedure). Procedura ta jest definiowana podczas tworzenia okna. Istnieje też funkcja PeekMessage którą można podglądać zdarzenia w kolejce bez pobierania ich.
Przykładowa aplikacja Windows działająca zdarzeniowo #include <windows.h>
static TCHAR lpszAppName[] = TEXT( "API Windows" );
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ //reakcje na poszczególne zdarzenia wysyłane przez użytkownika switch (uMsg)
case WM_CREATE: break;
case WM_DESTROY: PostQuitMessage(0); break;
case WM_KEYDOWN: break;
default: return (DefWindowProc(hWnd, uMsg, wParam, lParam));
return(0L); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
MSG msg; WNDCLASS wndclass; HWND hWnd;