vc响应最大化最小化按钮的事件或消息 .

本文介绍了三种处理窗口状态改变的方法:通过OnSize消息事件处理最大化、还原等状态;在OnSysCommand中处理最大化和最小化指令;以及在消息处理过程中通过WM_GETMINMAXINFO等消息进行判断。

方法一。在OnSize消息事件中处理

最小化 SIZE_MINIMIZED,
最大化 SIZE_MAXIMIZED,
还原 SIZE_RESTORED,

例如:

void CMainDlg::OnSize(UINT nType, int cx, int cy) 
{
 CDialog::OnSize(nType, cx, cy);
 
 // TODO: Add your message handler code here
 //::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
 if   (nType== SIZE_MAXIMIZED)     
 {   
//在这里添加最小化需要处理的事件 
         // ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
 }
 if   (nType==SIZE_RESTORED)     
 {   
//在这里添加还原时需要处理的事件 
        //  ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
 }
}

方法二

在OnSysCommand中处理   
  nID   =   SC_MAXIMIZE   是最大化   
  nID   =   SC_MINIMIZE   是最小化

 

方法三:

    一般情况下是在消息处理过程中进行判断,如:   
  LRESULT   CALLBACK   WndProc(HWND   hWnd,   UINT   msg,   WPARAM   wParam,   LPARAM   lParam)   
  {   
          switch(msg)   
          {   
                  case   WM_DESTROY:   
                          //   响应代码   
                  break;   
                  case   WM_GETMINMAXINFO:     //   lParam返回一个指向MINMAXINFO结构的指针   
                          //   响应代码   
                  break;   
                  default:   
                          return   DefWindowProc(hWnd,   msg,   wParam,   lParam);   
          }   
          return   0;   
  }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值