gpt4 book ai didi

taskbar - 保持窗口看起来活跃

转载 作者:行者123 更新时间:2023-12-04 07:00:28 24 4
gpt4 key购买 nike

我正在处理辅助监视器的任务栏。我让它工作得很好。我也有空气模糊的外观。但我的问题可能与航空方面的东西无关。

我想要做的是让我的任务栏窗口始终显示为焦点/激活。它实际上不需要被聚焦或激活,我只是希望它看起来那样。您可以通过在应用程序空闲中放置一个 setforgroundwindow 调用来查看我所追求的效果。但我不能使用它,因为我真的不希望它像那样捕获焦点。我只是希望它在有焦点时总是看起来像它的样子。

我尝试了各种 WM_XXX 消息调用,包括捕获和发送,我尝试过 setwindowpos 调用,等等。唯一有效的方法是调用 Mouse_Event(MOUSEEVENTF_LEFTDOWN 然后 Mouse_Event(MOUSEEVENTF_LEFTUP。我不喜欢这个解决方案,因为它是我想做的事情的一个非常俗气的黑客/解决方法。但是无论使用 Mouse_Event 调用什么,本质上都是什么我只需要在没有实际点击我的应用程序或发送它的 Mouse_Event 调用的情况下发生。

最佳答案

您没有说明您使用的是哪种语言,或者这是托管代码还是非托管代码。

对于 C++ 非托管代码,您只需处理 WM_NCACTIVATE 消息并强制它始终处于事件状态,如下所示:

case WM_NCACTIVATE:
{
// wParam tells us whether we are active or inactive, but we are going to ignore
// that and always pass active down to DefWindowProc so it will draw us active.
DefWindowProc(hwnd, uMsg, TRUE, lParam);
//return FALSE; // returning false here prevents actual deactivation
return TRUE; // return true allows deactivation (even though we draw as active)
}
break;

编辑:delphi 代码中的解决方案(从注释中移出以使其更具可读性)
procedure TForm1.WndProc(var Message: TMessage); 
begin inherited;
if (Message.Msg = WM_NCACTIVATE) then
begin
DefWindowProc(handle, Message.Msg, 1, Message.LParam );
Message.Result := 1;
end;
end;

关于taskbar - 保持窗口看起来活跃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942095/

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