gpt4 book ai didi

c++ - SendMessage 总是返回零?

转载 作者:可可西里 更新时间:2023-11-01 13:41:51 26 4
gpt4 key购买 nike

为什么 Windows SendMessage() 总是返回零,即使消息传递成功?有没有办法用 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
}

最佳答案

WM_COPYDATA 的 SendMessage 返回零表示目标应用程序未处理消息 (FALSE = 0)。

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

如果可能的话,您可能值得花时间查看目标应用程序对 WM_COPYDATA 消息的处理方式。

关于c++ - SendMessage 总是返回零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2301371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com