BCB下创建一个只接收消息的窗口,该如何处理

BCB下创建一个只接收消息的窗口 - C++ Builder / Windows SDK/API
请问各位大侠,如何在BCB下创建一个只接收消息的窗口(该窗口不显示出来)。

是不是要用CreateWindowEx()这个函数?

可是用这个函数好像又要用RegisterWndClass()....那个函数的参数WNDCLASS结构里面有几个参数我不知道怎么赋值。。。


请各位帮帮忙。。。

------解决方案--------------------
关于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="Message-Only Window";

wndcls.lpszMenuName=NULL;

wndcls.style=CS_HREDRAW | CS_VREDRAW;

RegisterClass(&wndcls);

m_hwnd = CreateWindowEx(0,"Message-Only Window","Message-Only Window",0,0,0,0,0,HWND_MESSAGE,0,hInstance,0);

if (m_hwnd == NULL)

{

return FALSE; 

}

return TRUE;

}

LRESULT CALLBACK MessageOnlyWinProc(

HWND hwnd, // handle to window

UINT uMsg, // message identifier

WPARAM wParam, // first message parameter

LPARAM lParam // second message parameter

)//用于处理消息窗口接收到的消息,接收播放结束信号。

{

switch(uMsg)

{

case WM_CLOSE:

DestroyWindow(hwnd);

break; 

case WM_GRAPHNOTIFY:

DoSomeThing();

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hwnd,uMsg,wParam,lParam);

}

return 0;

}