gpt4 book ai didi

winforms - 设置/缩放控件滚动条的宽度

转载 作者:行者123 更新时间:2023-12-02 19:14:15 26 4
gpt4 key购买 nike

当每个显示器 DPI 更改 ( WM_DPICHANGED message ) 时, ListView 、 TreeView 、富编辑、列表框等控件的内置滚动条不会缩放(如预期)。

Unscaled scrollbar

它们需要以编程方式进行缩放。

虽然我没有找到任何 API(在 Win32 中都没有,更不用说在 WinForms 中)来设置滚动条大小了。

我可以使用什么 API 来设置滚动条大小(宽度)?

或者至少我如何捕获滚动条 handle ? (我假设滚动条内部是单独的子控件)一旦我有了句柄,我假设我可以使用 MoveWindow调整它的大小(编辑:我的假设是不正确的,正如@Anders的答案所示)

<小时/>

有关背景,请参阅 High DPI Desktop Application Development on Windows .

<小时/>

有几个看似重复的问题,但实际上没有一个是相关的:

那里的答案要么更改系统范围的设置,要么仅适用于DataGrid(其界面中具有单独的子滚动条控件)。

最佳答案

滚动条是 usually不是单独的窗口。如果窗口使用 WS_HSCROLL/WS_VSCROLL 样式,则滚动条将在控件本身的非客户区域中实现。

Windows 10 创意者更新将引入名为 Per Monitor V2 DPI awareness 的内容。这包括子窗口通知、“Windows 窗体 DPI 缩放改进”和“改进的主题行为”。它还将自动缩放非客户区域。

同时您可以尝试调用EnableNonClientDpiScalingWM_NCCREATE ( added in the Anniversary Update ) 中。

关于winforms - 设置/缩放控件滚动条的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42674498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com