2015-09-06 57 views
1

我使用CreateWindowEx创建一个窗口,仅用于接收消息。目前hWndParent参数为0:仅消息窗口是否消耗更少的资源?

Result := CreateWindowEx(WS_EX_TOOLWINDOW, WindowClassName, '', WS_POPUP, 
     0, 0, 0, 0, 0, 0, HInstance, nil); 

我读过的消息,唯一窗口可以通过改变这个参数来HWND_MESSAGE创建。

使用此选项时,在性能和资源消耗方面是否有优势?

+4

您可以使用内置的'AllocateHWnd'功能。你为什么想自己做这个*。我想说,这是优化的不利之处。你会做一次(对于我希望的普通消息接收器)。 – TLama

+0

@TLama:谢谢你的回应。原因是这里概述:[链接](http://stackoverflow.com/questions/32322329/how-to-pass-message-to-tapartmentthread-instance-without-creating-windows-handle) – CAnder

+2

我怀疑它使得多差异 –

回答

2

这是很难回答明确。人们会想象一个只有消息窗口的资源比隐藏的窗口更少。但是谁能说这不是相反的方式?也许答案与操作系统版本不同。你只能通过分析来确定。

但是,在进程中,您往往不会有大量消息窗口。所以即使有所不同,它会不会是重要的?不见得。

更重要的区别是在行为中发现。最大的问题是只有窗口才会收到广播消息。

+0

感谢您的贡献和线程安全AllocateHWnd。 – CAnder