MAINFRM.CPP
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- // MainFrm.cpp : implementation of the CMainFrame class
- //
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1997-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
- #include "stdafx.h"
- #include "HttpSvr.h"
- #include "MainFrm.h"
- #include "ReqSock.h"
- #include "HttpDoc.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_DESTROY()
- ON_WM_TIMER()
- //}}AFX_MSG_MAP
- ON_UPDATE_COMMAND_UI(ID_INDICATOR_UPTIME, OnUpdateUpTime)
- #ifdef IMPL_CGI
- ON_MESSAGE(WSM_CGIDONE, OnCGIDone)
- #endif IMPL_CGI
- END_MESSAGE_MAP()
- static UINT indicators[] =
- {
- ID_SEPARATOR, // status line indicator
- ID_INDICATOR_UPTIME,
- };
- /////////////////////////////////////////////////////////////////////////////
- // CMainFrame construction/destruction
- CMainFrame::CMainFrame()
- {
- }
- 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 barn");
- return -1; // fail to create
- }
- // start the uptime counter....
- CalcUpTime();
- // kick off the uptime update timer....
- m_uTimer = SetTimer( 1, 30000, NULL );
- return 0;
- }
- BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- // TODO: Modify the Window class or styles here by modifying
- // the CREATESTRUCT cs
- return CFrameWnd::PreCreateWindow(cs);
- }
- /////////////////////////////////////////////////////////////////////////////
- // 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::OnUpdateUpTime(CCmdUI* pCmdUI)
- {
- pCmdUI->Enable();
- }
- void CMainFrame::OnDestroy()
- {
- CFrameWnd::OnDestroy();
- if ( m_uTimer )
- KillTimer( m_uTimer );
- }
- void CMainFrame::OnTimer(UINT nIDEvent)
- {
- CalcUpTime();
- CFrameWnd::OnTimer(nIDEvent);
- }
- void CMainFrame::CalcUpTime()
- {
- CString strUpTime;
- CHttpSvrDoc* pDoc = (CHttpSvrDoc*)GetActiveDocument();
- // only canculate if we have a doc and it's listening....
- if ( pDoc && pDoc->m_pListen )
- {
- CTime timeNow = CTime::GetCurrentTime();
- // calculate uptime and set the status bar....
- CTimeSpan upTime = timeNow - pDoc->m_timeStarted;
- UINT uFmt = upTime.GetDays() > 0 ? IDS_UPTIME_DAYS : IDS_UPTIME_DAY;
- strUpTime = upTime.Format( uFmt );
- }
- else
- strUpTime.Format( IDS_UPTIME_START );
- m_wndStatusBar.SetPaneText( 1, strUpTime, TRUE );
- }
- #ifdef IMPL_CGI
- LRESULT CMainFrame::OnCGIDone( WPARAM, LPARAM lParam )
- {
- CRequestSocket* pReqSock = (CRequestSocket*)lParam;
- pReqSock->CGIDone();
- return 0;
- }
- #endif // IMPL_CGI