gpt4 book ai didi

c# - WS_EX_COMPOSITED 和滚动条在拖动时不绘制

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:08 24 4
gpt4 key购买 nike

我有一个表单,上面有许多自定义控件,闪烁很糟糕,我发现了以下代码(在搜索解决方案时在 stackoverflow 上,How to fix the flickering in User controlsWinforms Double Buffering由 Hans Passant 发布)修复了闪烁

protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
return cp;
}
}

但是,现在如果我单击滚动条上的位置栏,位置栏将保持固定,直到我松开鼠标按钮。

有没有一种方法可以在拖动时更新滚动位置栏,并且不会在控件上闪烁?

非常感谢

最佳答案

smooth scrolling .net forms

在这里找到答案,感谢 CharlesW

private const int WM_HSCROLL = 0x114;
private const int WM_VSCROLL = 0x115;

protected override void WndProc (ref Message m)
{
if ((m.Msg == WM_HSCROLL || m.Msg == WM_VSCROLL)
&& (((int)m.WParam & 0xFFFF) == 5))
{
// Change SB_THUMBTRACK to SB_THUMBPOSITION
m.WParam = (IntPtr)(((int)m.WParam & ~0xFFFF) | 4);
}
base.WndProc (ref m);
}

关于c# - WS_EX_COMPOSITED 和滚动条在拖动时不绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13660530/

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