实现窗口最大化最小化消息事件
有如下两种方法实现:
第一种:
给Dlg类添加WM_SIZE事件,会自动生成OnSize()方法
void CTrayDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: 在此处添加消息处理程序代码 //最小化 SIZE_MINIMIZED //最大化 SIZE_MAXIMIZED //还原 SIZE_RESTORED if (nType== SIZE_MINIMIZED) //响应最小化 { //在这里添加最小化需要处理的事件 ShowWindow(SW_HIDE); } }
第二种:
直接在OnSysCommand方法添加
代码如下:
void CTrayMenuDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else if(nID == SC_MAXIMIZE) { //ShowWindow(SW_HIDE); //响应最大化 } else if (nID == SC_MINIMIZE) { ShowWindow(SW_HIDE); //响应最大化 } else { CDialog::OnSysCommand(nID, lParam); } }