最小话、最大化的消息函数

本文介绍了在VC中通过三种不同方式来响应窗口的最大化、最小化及还原状态变更的方法。第一种是在OnSize消息事件中根据窗口状态进行处理;第二种是在OnSysCommand中依据命令ID来响应;第三种是通过WM_GETMINMAXINFO消息处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

方法一。在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   是最小化

void CMainDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

      if   (nID== SIZE_MAXIMIZED)     
     {   
           //在这里添加最小化需要处理的事件 
            // ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
     }
     if   (nID==SIZE_RESTORED)     
    {   
           //在这里添加还原时需要处理的事件 
          //  ::SendMessage(g_hMain,WM_FORM_RESIZE,0,0);
    } 

}

 

方法三:

    一般情况下是在消息处理过程中进行判断,如:  
  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;  
  }

 

WM_GETMINMAXINFO

    WPARAM wParam
    LPARAM lParam;

Parameters

wParam
This parameter is not used.
lParam
Pointer to a MINMAXINFO structure that contains the default maximized position and dimensions, and the default minimum and maximum tracking sizes. An application can override the defaults by setting the members of this structure.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值