关于dll中接收消息的问题
由于接收消息必须要有hwnd,也就是需要有个窗口对应才能接收消息,但在Dll中不需要这个窗口,却又想要能够接收消息。
这样的话,就可以在Dll中创建一个“消息窗口(Message-Only窗口)”,这种窗口仅仅用于处理消息,而不会被显示出来。
在创建时指定CreateWindowEx的参数hwndParent为HWND_MESSAGE. 或在创建窗口后SetParent(hWnd, HWND_MESSAGE);即可建立一
个“消息窗口”
BOOL InitMessageOnlyWindow()
{
HINSTANCE hInstance = NULL;
hInstance = GetModuleHandle(NULL);
if (hInstance == NULL)
{
return FALSE;
}
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=MessageOnlyWinProc;
wndcls.lpszClassName=

这篇博客探讨了在DLL中如何通过创建消息窗口(Message-Only窗口)来接收消息,无需显示窗口。详细介绍了InitMessageOnlyWindow函数的实现过程,以及MessageOnlyWinProc回调函数如何处理接收到的WM_CLOSE、WM_GRAPHNOTIFY和WM_DESTROY消息。
最低0.47元/天 解锁文章
463

被折叠的 条评论
为什么被折叠?



