在Windows下,它们被称为无窗口控件。
什么是无窗口控件,它有什么好处?
inb24sb21#
无窗口控件是一个对象,它为您提供控件的行为,而不需要您创建窗口。当您想要修改或扩展行为时,或者当您想要在创建窗口会很笨拙或困难的地方使用行为时,这很有用。例如,你想在一个页面上嵌入数百个丰富的编辑控件,如果它们是每个窗口,那么每个窗口都必须获得焦点以获得用户输入,每个窗口都将单独绘制,等等。但是如果你愿意跟踪无窗口控件的位置,并做一些你通常通过创建一个窗口(即路由键盘消息)免费获得的其他内务处理,那么你可以通过使用无窗口控件以更低的开销获得更好的结果。
jaql4c8m2#
Anon's是的。它是一个不需要底层窗口句柄的控件(HWND)。对这些控件的需求特别是在Web浏览器中出现的,因为每个进程的句柄上限为10,000。你可能会打开两个半复杂网页的标签,然后你会用完句柄。使用,特别是滚动你自己的无窗口控件是很困难的,因为至少你需要重新创建它们的原始的,有时非常复杂和棘手的实现。
HWND
xienkqul3#
This可能会有帮助。
rkttyhzu4#
在我看来,无窗口控件可能使用更少sys资源,而且自定义更方便
4条答案
按热度按时间inb24sb21#
无窗口控件是一个对象,它为您提供控件的行为,而不需要您创建窗口。
当您想要修改或扩展行为时,或者当您想要在创建窗口会很笨拙或困难的地方使用行为时,这很有用。
例如,你想在一个页面上嵌入数百个丰富的编辑控件,如果它们是每个窗口,那么每个窗口都必须获得焦点以获得用户输入,每个窗口都将单独绘制,等等。
但是如果你愿意跟踪无窗口控件的位置,并做一些你通常通过创建一个窗口(即路由键盘消息)免费获得的其他内务处理,那么你可以通过使用无窗口控件以更低的开销获得更好的结果。
jaql4c8m2#
Anon's是的。它是一个不需要底层窗口句柄的控件(
HWND
)。对这些控件的需求特别是在Web浏览器中出现的,因为每个进程的句柄上限为10,000。你可能会打开两个半复杂网页的标签,然后你会用完句柄。使用,特别是滚动你自己的无窗口控件是很困难的,因为至少你需要重新创建它们的原始的,有时非常复杂和棘手的实现。
xienkqul3#
This可能会有帮助。
rkttyhzu4#
在我看来,无窗口控件可能使用更少sys资源,而且自定义更方便