什么是无窗口控件?

问题描述 投票:0回答:5

在 Windows 下,它们被称为无窗口控件。

什么是无窗控制以及它的优点是什么?

windows winapi controls
5个回答
5
投票

无窗口控件是一个对象,它为您提供控件的行为,而不需要您创建窗口。

当您想要修改或扩展行为时,或者当您想要在创建窗口会很尴尬或困难的地方使用该行为时,这非常有用。

例如,您想在页面上嵌入数百个丰富的编辑控件,如果它们都是窗口,那么每个控件都必须获得焦点才能获得用户输入,并且每个控件都将单独绘制,等等。

但是,如果您愿意跟踪无窗口控件的位置,并执行一些通常通过创建窗口免费获得的其他内务处理(即路由键盘消息),那么您可以通过使用无窗控制。


2
投票

Anon是的。它是一个不需要底层窗口句柄的控件 (

HWND
)。对于这些的需求尤其是在 Web 浏览器中出现,因为每个进程的最大句柄数限制为 10,000 个。您会打开两个半复杂网页选项卡,然后就会用完句柄。

使用,尤其是滚动自己的无窗口控件是很难,因为至少你需要重新创建它们原来的、有时非常复杂和棘手的实现。 (例如:IE 的列表框仍然是窗口控件,因为所有棘手的复杂性


1
投票

可能会有所帮助。


0
投票

无窗口控件没有专用的窗口句柄。


0
投票

在我看来,无窗口控件可能会使用更少的系统资源,并且更容易定制

© www.soinside.com 2019 - 2024. All rights reserved.