jjzjj

RegisterWindowMessage

全部标签

c++ - 如何在 VCL 应用程序中处理已发布、已注册的 Windows 消息?

我有一些低级库代码,我希望能够广播一些自定义窗口消息。在库代码中,定义了以下内容:staticUINTWM_MOTOR_WARNING_MESSAGE=0;extern"C"int_libmain(unsignedlongreason){WM_MOTOR_WARNING_MESSAGE=RegisterWindowMessage("MOTOR_WARNING_MESSAGE");....图书馆正在发送这样的消息://Sendwindowsmessageintret=PostMessage(HWND_BROADCAST,WM_MOTOR_WARNING_MESSAGE,0,0);if(!

c++ - 查找通过 RegisterWindowMessage Windows API 获取的消息的原始名称

在调试应用程序以尝试提高性能时,我发现它在处理大于0xC000的消息时会浪费时间。这显然是由RegisterWindowMessageAPI创建的消息。但是,该应用程序使用了两百多个这样的消息;有没有办法通过数值找到消息的原始名称?GetAtomName和GlobalGetAtomName失败并返回ERROR_INVALID_HANDLE错误。 最佳答案 没有官方API来获取已注册窗口消息的名称。也就是说,RegisterWindowMessage()和RegisterClipboardFormat()目前碰巧共享一个原子表(以及一

windows - 滥用 RegisterWindowMessage 会导致资源耗尽吗?

MSDN建议RegisterWindowMessage()函数仅用于注册要在进程之间发送的消息。如果需要在一个进程内发送消息,可以从WM_APP到0xBFFF范围内安全地选择它。但是在我们的代码库中,我经常看到RegisterWindowMessage()用于仅在一个进程内发送的消息。我想这样做是因为使用RegisterWindowMessage()的感觉很简单,因为它不需要手动分发WM_APP..0xBFFF范围内的消息标识符。我是否理解正确,如果许多应用程序在一台机器上运行,并且它们都使用不同的字符串调用RegisterWindowMessage(),它们可能会耗尽Register

c++ - 使用 WM_USER、WM_APP 或 RegisterWindowMessage

目前,我有一个WindowsEXE应用程序,其中包含几个加载的DLL。DLL需要通过PostMessage和SendMessage与我的Windows应用程序通信。WindowsEXE应用程序+DLL都在一个进程中。消息在EXE和DLL之间应该是私有(private)的。我想知道,我应该使用-WM_USERbasedmessage-WM_APPbasedmessage-RegisterWindowMessage为什么?如果有一个外部进程(另一个exe)试图查找我的Windows应用程序的FindWindow,并发送具有相同ID的消息,会发生什么情况?我不想回复,因为我只对来self自己