我在网上搜索了这两个函数调用之间的区别,并发现:
这两个API调用之间的区别在于它们返回控制权给调用应用程序的方式。通过 SendMessage ,只有在接收到消息的窗口处理完发送的消息后才会将控制权返回给调用应用程序,然而使用 PostMessage 时,无论发送的消息是否被处理,控制权都会立即返回给调用应用程序。
postMessage:向与线程关联的消息队列发送一条消息,并且在等待线程处理该消息的情况下返回。
SendMessage:调用指定窗口的窗口过程,并在窗口过程处理消息后才返回。
PostMessage是异步函数,而SendMessage是同步函数。
现在问题在于我的应用程序(需要高性能)应该使用哪个函数?
请注意,我正在使用Visual Studio 2010中的MFC,对于此代码:
CWnd *pParentOfClass = CWnd::GetParent();
pParentOfClass ->
我只有这些用于发送消息的功能:
PostMessageW
SendMessage
SendMessageW
更多问题:
你能告诉我 SendMessage 和 SendMessageW 之间的区别吗?