windows_programming_notes.nbk: Home | Index | Next Page: PostQuitMessage | Previous Page: POINT


 Posting a Message

You can post a message to a message queue by using the [PostMessage] function. [PostMessage] places a message at the end of a thread's message queue and returns immediately, without waiting for the thread to process the message. The function's parameters include a window handle, a message identifier, and two message parameters. The system copies these parameters to an MSG structure, fills the time and pt members of the structure, and places the structure in the message queue.

The system uses the window handle passed with the [PostMessage] function to determine which thread message queue should receive the message. If the handle is [HWND_TOPMOST], the system posts the message to the thread message queues of all top-level windows.

You can use the [PostThreadMessage] function to post a message to a specific thread message queue. [PostThreadMessage] is similar to [PostMessage], except the first parameter is a thread identifier rather than a window handle. You can retrieve the thread identifier by calling the [GetCurrentThreadId] function.

Use the PostQuitMessage function to exit a message loop. PostQuitMessage posts the WM_QUIT message to the currently executing thread. The thread's message loop terminates and returns control to the system when it encounters the WM_QUIT message. An application usually calls PostQuitMessage in response to the WM_DESTROY message, as shown in the following example.

case WM_DESTROY: 
 
    // Perform cleanup tasks. 
 
    PostQuitMessage(0); 
    break; 

Next: Sending A Message


windows_programming_notes.nbk: Home | Index | Next Page: PostQuitMessage | Previous Page: POINT


Notebook exported on Monday, 7 July 2008, 18:56:50 PM Eastern Daylight Time