C++ 在Win32等效的\u注册\u消息上

C++ 在Win32等效的\u注册\u消息上,c++,winapi,visual-c++,C++,Winapi,Visual C++,我在Win32应用程序上使用Windows钩子,我在MFC应用程序中找到了用于处理已发布消息的“已注册”消息,但在没有MFC类的Win32中如何使用此方法?您可以使用RegisterWindowMessage()获取消息ID,然后在Post/SendMessage()调用中使用该ID。处理消息的代码也使用完全相同的字符串调用RegisterWindowMessage。获取完全相同的消息ID。并使用if()语句在窗口过程中检查是否匹配 ON_REGISTERED_MESSAGE宏没有做什么,它只是

我在Win32应用程序上使用Windows钩子,我在MFC应用程序中找到了用于处理已发布消息的“已注册”消息,但在没有MFC类的Win32中如何使用此方法?

您可以使用RegisterWindowMessage()获取消息ID,然后在Post/SendMessage()调用中使用该ID。处理消息的代码也使用完全相同的字符串调用RegisterWindowMessage。获取完全相同的消息ID。并使用if()语句在窗口过程中检查是否匹配


ON_REGISTERED_MESSAGE宏没有做什么,它只是隐藏if()语句。

您可以使用RegisterWindowMessage()获取消息ID,然后在Post/SendMessage()调用中使用该ID。处理消息的代码也使用完全相同的字符串调用RegisterWindowMessage。获取完全相同的消息ID。并使用if()语句在窗口过程中检查是否匹配


ON_REGISTERED_MESSAGE宏没有做很多事情,它只是隐藏if()语句。

我有一些类似于它的东西:static UINT UWM_MOUSEDBCLICK=::RegisterWindowMessage(UWM_mouseldblick_MSG);但是我应该执行if语句的地方,可能在这里//主消息循环:while(GetMessage(&msg,NULL,0,0)){if(!translateacelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&msg);}if(msg.message==UWM\u MOUSEMOVE){//do smething}}No,在窗口过程中。您为在Post/SendMessage调用中使用其句柄的窗口编写的一个。好的,但现在我有另一个问题,全局鼠标单击(客户端窗口外)没有收到,我编写了以下内容(msg->message==WM|LBUTTONDOWN | msg->message==WM|NCLBUTTONDOWN)PostMessage(hWndServer,UWM|mousemoveleftondown,0);但事实并非如此working@TaronProWindows中没有“全局鼠标单击”这样的概念。如果需要全局拦截鼠标单击,则必须在较低级别进行过滤,例如通过安装全局鼠标挂钩。我已通过SetWindowsHookEx函数在单独的DLL中安装鼠标挂钩,我将此DLL引用到我的项目中,但是只有当它出现在我的窗口上时,它才会发布消息。我有类似的东西:static UINT UWM_MOUSEDBCLICK=::RegisterWindowMessage(UWM_mouseldblick_MSG);但是我应该执行if语句的地方,可能在这里//主消息循环:while(GetMessage(&msg,NULL,0,0)){if(!translateacelerator(msg.hwnd,hAccelTable,&msg)){TranslateMessage(&msg);DispatchMessage(&msg);}if(msg.message==UWM\u MOUSEMOVE){//do smething}}No,在窗口过程中。您为在Post/SendMessage调用中使用其句柄的窗口编写的一个。好的,但现在我有另一个问题,全局鼠标单击(客户端窗口外)没有收到,我编写了以下内容(msg->message==WM|LBUTTONDOWN | msg->message==WM|NCLBUTTONDOWN)PostMessage(hWndServer,UWM|mousemoveleftondown,0);但事实并非如此working@TaronProWindows中没有“全局鼠标单击”这样的概念。如果需要全局拦截鼠标单击,则必须在较低级别进行过滤,例如通过安装全局鼠标挂钩。我已通过SetWindowsHookEx函数在单独的DLL中安装了鼠标挂钩,我将此DLL引用到我的项目中,但仅当它发生在我的窗口上时,它的post消息才会出现