我在谷歌上花了很多时间,并没有在这个特定的主题上找到任何相关的结果。
我有一个应用程序,当用户在任务栏中单击它时,我希望将其最小化(如果它尚未最小化)。问题似乎与窗口无边框有关。当我将其设置为具有边框时,在任务栏中单击它时可以最小化,而无需任何代码干预。但我需要窗口无边框,因为我正在使用客户区创建一个“自定义边框”。
tl; dr如何检查当前应用程序是否在任务栏中被点击?
非常感谢! 塞缪尔
答案 0 :(得分:3)
无需修改任务栏。
确保为您的窗口设置了WS_MINIMIZEBOX|WS_MAXIMIZEBOX
样式。否则,您的窗口将无法使用wParam
SC_MINIMIZE
和SC_RESTORE
处理WM_SYSCOMMAND
。
某些资源编辑器(如Visual Studio中的编辑器)使您无法在删除标准窗口边框时设置WS_MINIMIZEBOX|WS_MAXIMIZEBOX
。您可以以编程方式添加样式,如下所示:
DWORD style = GetWindowLong( hwnd, GWL_STYLE );
SetWindowLong( hwnd, GWL_STYLE, style | WS_MINIMIZEBOX | WS_MAXIMIZEBOX );