gpt4 book ai didi

c# - 如何表现一个有焦点的外观但没有焦点的形式?

转载 作者:行者123 更新时间:2023-11-30 22:05:49 24 4
gpt4 key购买 nike

如何让一个表单看起来很专注,而实际上却没有?在我的代码中,表单无法聚焦,所以它看起来总是没有聚焦,我的目标是用聚焦的风格来展示它。解决方案可能是对表单应用特殊主题,但我不确定。
(我正在使用 C# .NET)

最佳答案

当然,您的意思是已激活,表单是几乎永远不会获得焦点的顶级窗口。它的一个客户端控件得到了它。窗口激活会影响窗口标题栏的颜色,大概您总是希望它以“我处于事件状态”的颜色绘制。旧版本的 Paint.NET 在其工具窗口中使用了这个 hack。

Windows 将 WM_NCACTIVATE 消息发送到窗口以使其显示正确的激活状态。消息的 wparam 指示它应该为其标题栏使用什么系统颜色,TRUE 指示事件状态。您可以简单地修改消息并始终强制 wparam 值。这是一个单行代码,将此代码粘贴到您的表单类中:

    protected override void WndProc(ref Message m) {
if (m.Msg == 0x86) m.WParam = (IntPtr)1;
base.WndProc(ref m);
}

我不能保证这不会有任何副作用。 Afaik 它只影响绘画,例如您仍然会收到 Deactivate 事件。

关于c# - 如何表现一个有焦点的外观但没有焦点的形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118146/

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