答案 0 :(得分:4)
无窗口控件是一个对象,它为您提供控件的行为,而无需您创建窗口。
当您想要修改或扩展行为时,或者当您想要在创建窗口很困难或困难的地方使用行为时,这非常有用。
比如说,你想在页面上嵌入数百个丰富的编辑控件,如果它们是每个窗口,那么每个窗口都需要获得焦点才能获得用户输入,并且每个都会单独绘制,等等。 / p>
但是如果你愿意跟踪无窗口控件的位置并做一些你通常会通过创建窗口(即路由键盘消息)免费获得的其他内务处理,那么你可以用更低的开销获得更好的结果通过使用无窗口控件。
答案 1 :(得分:2)
This可能会有所帮助。
答案 2 :(得分:2)
Anon's对。它是一个不需要底层窗口句柄(HWND
)的控件。这些需求尤其适用于Web浏览器,因为每个进程的最大句柄数限制为10,000。你会打开两个半复杂的网页标签,你的手柄就会用完。
使用并特别滚动自己的无窗口控件 hard ,因为至少你需要重新创建原始的,有时非常复杂和棘手的实现。 (f.e。:IE's listbox is still windowed control because of all the tricky intricacies)
答案 3 :(得分:1)
无窗口控件没有专用的窗口句柄。
答案 4 :(得分:1)
在我看来,无窗口控件可能会使用更少的sys资源,而且更容易自定义