mfc窗口最大化和最小化處理

最大化、最小化、恢復的時候都要產生WM_SIZE消息。響應WM_SIZE消息的是OnSize,所以可以重載此函數來處理最小化的時候要做的操作。
afx_msg   void   OnSize(   UINT   nType,   int   cx,   int   cy   );

Parameters

nType

Specifies   the   type   of   resizing   requested.   This   parameter   can   be   one   of   the   following   values:  

SIZE_MAXIMIZED       Window   has   been   maximized.


SIZE_MINIMIZED       Window   has   been   minimized.


SIZE_RESTORED       Window   has   been   resized,   but   neither   SIZE_MINIMIZED   nor   SIZE_MAXIMIZED   applies.


SIZE_MAXHIDE       Message   is   sent   to   all   pop-up   windows   when   some   other   window   is   maximized.


SIZE_MAXSHOW       Message   is   sent   to   all   pop-up   windows   when   some   other   window   has   been   restored   to   its   former   size.  
cx

Specifies   the   new   width   of   the   client   area.

cy

Specifies   the   new   height   of   the   client   area.

Remarks

The   framework   calls   this   member   function   after   the   window’s   size   has   changed.  

If   the   SetScrollPos   or   MoveWindow   member   function   is   called   for   a   child   window   from   OnSize,   the   bRedraw   parameter   of   SetScrollPos   or   MoveWindow   should   be   nonzero   to   cause   the   CWnd   to   be   repainted.

Note       This   member   function   is   called   by   the   framework   to   allow   your   application   to   handle   a   Windows   message.   The   parameters   passed   to   your   function   reflect   the   parameters   received   by   the   framework   when   the   message   was   received.   If   you   call   the   base-class   implementation   of   this   function,   that   implementation   will   use   the   parameters   originally   passed   with   the   message   and   not   the   parameters   you   supply   to   the   function.

Example

//   Resize   the   list   control   contained   in   the   view   to
//   fill   the   entire   view   when   the   view 's   window   is
//   resized.   CMyView   is   a   CView   derived   class.
void   CMyView::OnSize(UINT   nType,   int   cx,   int   cy)  
{
      CView::OnSize(nType,   cx,   cy);
      //   Resize   list   to   fill   the   whole   view.
      m_List.MoveWindow   (0,   0,   cx,   cy);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章