首页 > 代码库 > 关于点击程序的任务栏图标无法最小化程序界面的问题

关于点击程序的任务栏图标无法最小化程序界面的问题

一般情况下,点击程序任务栏的图标,程序会响应WM_SYSCOMMAND消息,然后再OnSysCommand()消息函数里面截取 (nID & 0xFFF0) == SC_MINIMIZE这个消息。

然后

ShowWindow(SW_HIDE); //隐藏当前窗口
Shell_NotifyIcon(NIM_ADD,&m_NotifyData); //注册任务栏信息

就可以把窗口最小化。

但是,不知道为什么我的程序无法响应OnSysCommand消息,在网上查询了下

在InitDialog中加上下面这句就好了, 

ModifyStyle(0,WS_SYSMENU|WS_MINIMIZEBOX,0); 

回想下整个问题,应该是在创建程序窗口的时候,没有给窗口添加最小化菜单造成的吧。

所以在使用了ModifyStyle(0,WS_SYSMENU|WS_MINIMIZEBOX,0); 添加最小化系统菜单后就可以响应WM_SYSCOMMAND消息了。