www.gusucode.com > 马走日棋盘搜索算法C++源码程序 > 马走日棋盘搜索算法/ChessDisplay/ChessDisplay/MainFrm.cpp

    // MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "ChessDisplay.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()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

//===========================================================
static UINT indicators[] =
{

	ID_SEPARATOR,          
	ID_SEARCHED_TIMES,//搜索次数;
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	
}

CMainFrame::~CMainFrame()
{
}

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
int CMainFrame::CreateStatusBar()
{
    //状态条
	if( !m_wndStatusBar.Create( this ) || 
		! m_wndStatusBar.SetIndicators( indicators,sizeof( indicators )/sizeof(UINT)))
	{
		TRACE0( "Failed to create status bar\n");
		return -1;
	}
	CPoint point( 0 , 0 );
	UpdateStatusBar( 0 );
	return 1;
}


int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	CreateStatusBar();
	return 0;
}

void CMainFrame::UpdateStatusBar( int searchTimes )
{
	

	CString  times;
	BOOL bPM = TRUE;
	
	times.Format( _T("搜索解空间大小     :            %d") , searchTimes );
	
	UINT  nID ;
	UINT  nStyle;
	int   nWidth ;

	int   nIndexSearTimes;

	
	nIndexSearTimes = m_wndStatusBar.CommandToIndex( ID_SEARCHED_TIMES);
	
	CClientDC dc(&m_wndStatusBar);
	CFont*  pOldFont = dc.SelectObject( m_wndStatusBar.GetFont());
	CSize   szExtentSearchTimes  = dc.GetTextExtent( times , times.GetLength() );
	
	dc.SelectObject( pOldFont );
	
	
	m_wndStatusBar.GetPaneInfo( nIndexSearTimes , nID , nStyle , nWidth );
	m_wndStatusBar.SetPaneInfo( nIndexSearTimes , nID , nStyle ,szExtentSearchTimes.cx );
	m_wndStatusBar.SetPaneText( nIndexSearTimes , times );
	
}