作者在 2008-09-21 00:14:14 发布以下内容
CWnd::PostMessage
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
返回值如果公布了消息,则返回非零值;否则返回0。
参数message指定了要公布的消息。
wParam指定了附加的消息信息。这个参数的内容依赖于要公布的消息。
lParam指定了附加的消息信息。这个参数的内容依赖于要公布的消息。
说明这个函数将一个消息放入窗口的消息队列,然后直接返回,并不等待对应的窗口处理消息。消息队列中的消息是通过调用Windows的 GetMessage或PeekMessage函数来获得的。可以通过Windows的PostMessage函数来访问其它应用程序。
CWinThread::PostThreadMessage
BOOL PostThreadMessage( UINT message,WPARAM wParam,LPARAMlParam );返回值如果成功,则返回非零值;否则返回0。
参数message用户自定义消息的ID。wParam第一个消息参数。
lParam第二个消息参数。说明调用这个函数以向其它CWinThread对象发送一个用户自定义消息。发送的消息通过消息映射宏ON_THREAD_MESSAGE被映射到适当的消息处理函数。
显然它们发送到的对象不同:PostMessage发消息给窗口,PostThreadMessage发消息给线程。
他们都是向线程的消息队列放一个消息就立即返回;
不同的是:
BOOL PostMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
明确表示了要投递的消息是发给哪个窗口(当然了,是在窗口所在线程的消息队列里放上投递的消息)的,而
PostThreadMessage表示要放到哪个线程,而如果PostMessage的第一个参数HWND hWnd 是 NULL时就相当于是以当前线程的id为参数调用了PostThreadMessage方法 ,这也就是“NULL The function behaves like a call to PostThreadMessage with the dwThreadId parameter set to the identifier of the current thread. ”的意思。也就是 PostMessage 包含 PostThreadMessage的功能
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
返回值如果公布了消息,则返回非零值;否则返回0。
参数message指定了要公布的消息。
wParam指定了附加的消息信息。这个参数的内容依赖于要公布的消息。
lParam指定了附加的消息信息。这个参数的内容依赖于要公布的消息。
说明这个函数将一个消息放入窗口的消息队列,然后直接返回,并不等待对应的窗口处理消息。消息队列中的消息是通过调用Windows的 GetMessage或PeekMessage函数来获得的。可以通过Windows的PostMessage函数来访问其它应用程序。
CWinThread::PostThreadMessage
BOOL PostThreadMessage( UINT message,WPARAM wParam,LPARAMlParam );返回值如果成功,则返回非零值;否则返回0。
参数message用户自定义消息的ID。wParam第一个消息参数。
lParam第二个消息参数。说明调用这个函数以向其它CWinThread对象发送一个用户自定义消息。发送的消息通过消息映射宏ON_THREAD_MESSAGE被映射到适当的消息处理函数。
显然它们发送到的对象不同:PostMessage发消息给窗口,PostThreadMessage发消息给线程。
他们都是向线程的消息队列放一个消息就立即返回;
不同的是:
BOOL PostMessage(
HWND hWnd, // handle of destination window
UINT Msg, // message to post
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);
明确表示了要投递的消息是发给哪个窗口(当然了,是在窗口所在线程的消息队列里放上投递的消息)的,而
PostThreadMessage表示要放到哪个线程,而如果PostMessage的第一个参数HWND hWnd 是 NULL时就相当于是以当前线程的id为参数调用了PostThreadMessage方法 ,这也就是“NULL The function behaves like a call to PostThreadMessage with the dwThreadId parameter set to the identifier of the current thread. ”的意思。也就是 PostMessage 包含 PostThreadMessage的功能