text: // MainFrm.cpp : implementation of the CMainFrame class
  //
  
  #include "stdafx.h"
  #include "SkinProgressTest.h"
  
  #include "MainFrm.h"
  
  #ifdef _DEBUG
  #define new DEBUG_NEW
  #undef THIS_FILE
  static char THIS_FILE[] = __FILE__;
  #endif
  
  /////////////////////////////////////////////////////////////////////////////
  // CMainFrame
  
  IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
  
  BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
  	//{{AFX_MSG_MAP(CMainFrame)
  	ON_WM_CREATE()
  	ON_WM_GETMINMAXINFO()
  	//}}AFX_MSG_MAP
  END_MESSAGE_MAP()
  
  static UINT indicators[] =
  {
  	ID_SEPARATOR,           // status line indicator
    ID_INDICATOR_PROGRESS,  // Pane 1 with the 'STATUS_PROGRESS_BAR', large enough to accept a progress bar
  	ID_INDICATOR_CAPS,
  	ID_INDICATOR_NUM,
  	ID_INDICATOR_SCRL,
  };
  
  /////////////////////////////////////////////////////////////////////////////
  // CMainFrame construction/destruction
  
  CMainFrame::CMainFrame()
  {
  	// TODO: add member initialization code here
  	m_nWidth  = 0;
    m_nHeight = 0;
  }
  
  CMainFrame::~CMainFrame()
  {
  }
  
  int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
  {
  	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  		return -1;
  
  	if (!m_wndStatusBar.Create(this) ||
  		!m_wndStatusBar.SetIndicators(indicators,
  		  sizeof(indicators)/sizeof(UINT)))
  	{
  		TRACE0("Failed to create status bar\n");
  		return -1;      // fail to create
  	}
  
  	return 0;
  }
  
  BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
  {
  	if( !CFrameWnd::PreCreateWindow(cs) )
  		return FALSE;
  	// TODO: Modify the Window class or styles here by modifying
  	//  the CREATESTRUCT cs
  
  	return TRUE;
  }
  
  /////////////////////////////////////////////////////////////////////////////
  // CMainFrame diagnostics
  
  #ifdef _DEBUG
  void CMainFrame::AssertValid() const
  {
  	CFrameWnd::AssertValid();
  }
  
  void CMainFrame::Dump(CDumpContext& dc) const
  {
  	CFrameWnd::Dump(dc);
  }
  
  #endif //_DEBUG
  
  /////////////////////////////////////////////////////////////////////////////
  // CMainFrame message handlers
  
  void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) 
  {
  	// TODO: Add your message handler code here and/or call default
    lpMMI->ptMinTrackSize.x = m_nWidth;
    lpMMI->ptMinTrackSize.y = m_nHeight;
  
  	CFrameWnd::OnGetMinMaxInfo(lpMMI);
  }
  
  BOOL PeekAndPump()
  {
    static MSG msg;
  
    while(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
    {
  	  if(!AfxGetApp()->PumpMessage())
      {
  		  ::PostQuitMessage(0);
  		  return FALSE;
  	  }	
    }
  
    return TRUE;
  }
  
  