检查在任务栏中单击的当前应用程序? (C++, Windows API)

check current application clicked in taskbar? (C++, Windows API)

我在 google 上花了很多时间,但没有找到关于这个特定主题的任何相关结果。

我有一个应用程序,我希望当用户在任务栏中单击它时将其最小化(如果它尚未最小化)。问题似乎与 window 是无边界的事实有关。当我将它设置为有边框时,在任务栏中单击它时它会最小化,而无需任何代码干预。但我需要 window 无边界,因为我正在使用客户区制作 "custom border"。

tl;dr 如何检查任务栏中是否正在单击当前应用程序?

非常感谢! 塞缪尔

无需修改任务栏。

只需确保您的 WS_MINIMIZEBOX|WS_MAXIMIZEBOX styles set for your window. Otherwise your window won't handle WM_SYSCOMMANDwParamSC_MINIMIZESC_RESTORE

某些资源编辑器,如 Visual Studio 中的那个,在您删除标准 window 边框时无法设置 WS_MINIMIZEBOX|WS_MAXIMIZEBOX。您可以像这样以编程方式添加样式:

DWORD style = GetWindowLong( hwnd, GWL_STYLE ); 
SetWindowLong( hwnd, GWL_STYLE, style | WS_MINIMIZEBOX | WS_MAXIMIZEBOX );