SendMessage总是返回ZERO?

时间:2010-02-20 06:55:20

标签: c++ windows

为什么Windows SendMessage()始终返回ZERO,即使邮件传递成功?无论如何使用SendMessage()检查邮件传递失败?

修改

忘记提到我在c ++ DLL中使用SendMessage()

LRESULT result = ::SendMessage(hwndOtherWindow,WM_COPYDATA, NULL/*(WPARAM)this->GetSafeHwnd()*/,(LPARAM)&structCDS);

“结果”始终为零:(,但是消息成功传递到其他窗口

修改

BOOL CDlg::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct)
{
    return /*CDialog::OnCopyData(pWnd, pCopyDataStruct)*/ true;  //true is the trick
 }

1 个答案:

答案 0 :(得分:3)

SendMessage为WM_COPYDATA返回零意味着目标应用程序未处理该消息(FALSE = 0)。

消息可能会成功传递,但如果目标应用程序没有正确处理消息(即错误的返回值,或将其传递给默认窗口过程),那么SendMessage调用似乎会返回错误的结果

如果可能的话,看看目标应用程序对WM_COPYDATA消息的处理可能是值得的。