一般情况下,点击程序任务栏的图标,程序会响应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消息了。