WindowProc
In Win32 application programming, WindowProc (or window procedure), also known as WndProc, is a user-defined callback function that processes messages sent to a window. This function is specified when an application registers its window class and can be named anything (not necessarily WindowProc).
01Message handling
The window procedure is responsible for handling all messages that are sent to a window. The function prototype of WindowProc is given by:
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)hwnd is a handle to the window to which the message was sent and uMsg identifies the actual message by its identifier, as specified in winuser.h.
wParam and lParam are parameters whose meaning depends on the message. An application should identify the message and take the required action.
02Default processing
Hundreds of different messages are produced as a result of various events taking place in the system, and typically, an application processes only a small fraction of these messages. In order to ensure that all messages are processed, Windows provides a default window procedure called DefWindowProc that provides default processing for messages that the application itself does not process.
An application usually calls DefWindowProc at the end of its own WindowProc function, so that unprocessed messages can be passed down to the default procedure.
Sources and credits
This article is adapted from the Wikipedia article “WindowProc”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.