由于接收消息必须要有hwnd,也就是需要有个窗口对应才能接收消息,但有些情况下不需要这个窗口却又想要能够接收消息,找了下,大概有这么些办法:
1、在一个BCB版块看到有个人提问在dll中不用窗口怎么接收消息的一个回答:
自定义一个窗口句柄:
申请:AllocateHWnd
释放:DeallocateHWnd
就可以接受和发送消息啦
2、建立一个普通的隐藏窗口,只用于处理消息,不干其它事情
3、建立一个“消息窗口(Message-Only窗口)”,这种窗口仅仅用于处理消息,而不能被显示出来。
在创建时指定CreateWindowEx的参数hwndParent为HWND_MESSAGE. 或在创建窗口后SetParent(hWnd, HWND_MESSAGE);即可建立一个“消息窗口”