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

时间:2017-06-02 15:46:25

标签: c++ windows winapi taskbar

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

我有一个应用程序,当用户在任务栏中单击它时,我希望将其最小化(如果它尚未最小化)。问题似乎与窗口无边框有关。当我将其设置为具有边框时,在任务栏中单击它时可以最小化,而无需任何代码干预。但我需要窗口无边框,因为我正在使用客户区创建一个“自定义边框”。

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

非常感谢! 塞缪尔

1 个答案:

答案 0 :(得分:3)

无需修改任务栏。

确保为您的窗口设置了WS_MINIMIZEBOX|WS_MAXIMIZEBOX样式。否则,您的窗口将无法使用wParam SC_MINIMIZESC_RESTORE处理WM_SYSCOMMAND

某些资源编辑器(如Visual Studio中的编辑器)使您无法在删除标准窗口边框时设置WS_MINIMIZEBOX|WS_MAXIMIZEBOX。您可以以编程方式添加样式,如下所示:

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