⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 splashwnd.cpp

📁 一个完整的数字硬盘录像机系统软件
💻 CPP
字号:


// SplashWnd.cpp : implementation file
//

#include "stdafx.h"
#include "SplashWnd.h"
#include "ImageObject.h"
#include "GtMpegWnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
CSplashWnd::CSplashWnd(CString sBmpFile, UINT nDuration /*= 3500*/)
{
   m_nDuration=nDuration;
   m_sBmpFile=sBmpFile;
}
CSplashWnd::~CSplashWnd()
{
  if(m_pObject!=NULL)
	  delete m_pObject;
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CSplashWnd, CWnd)
	//{{AFX_MSG_MAP(CSplashWnd)
	ON_WM_PAINT()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BOOL CSplashWnd::Create()
{
	m_pObject=new CImageObject(m_sBmpFile);
	m_wndInvisible.CreateEx(
		WS_EX_TOPMOST, 
		AfxRegisterWndClass(CS_CLASSDC), 
		_T("Splash"), WS_POPUP, 0, 0, 
		m_pObject->GetWidth(), m_pObject->GetHeight(), 0, 0);
	// Create the the splash window with invisible one as parent
	BOOL bRetVal = CWnd::CreateEx(
		WS_EX_TOPMOST, 
		AfxRegisterWndClass(CS_CLASSDC), 
		_T("Splash"), WS_POPUP, 0, 0, 
		m_pObject->GetWidth(), m_pObject->GetHeight(), m_wndInvisible.m_hWnd,0);
	CenterWindow();
	ShowWindow(SW_SHOW);
	UpdateWindow();
	m_nTimerID = SetTimer(1, m_nDuration, 0);
	ASSERT(m_nTimerID);
	return bRetVal;
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CSplashWnd::OnPaint() 
{
	CPaintDC dc(this);
	CRect rTempRect;
	GetClientRect(rTempRect);
	if(m_pObject!=NULL)
	   m_pObject->Draw(&dc,rTempRect);
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
void CSplashWnd::OnTimer(UINT nIDEvent) 
{
	if (m_nTimerID == nIDEvent) 
	{       
		KillTimer(m_nTimerID);
		if(m_pObject!=NULL)
		{
	       delete m_pObject;
           m_pObject=NULL;
		}
        m_wndInvisible.DestroyWindow();         
		delete this;
		CGtMpegWnd* pWnd=(CGtMpegWnd*)AfxGetApp()->m_pMainWnd;
		pWnd->StartMpeg();
		return;
	}        
	CWnd::OnTimer(nIDEvent);
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
BOOL CSplashWnd::PreTranslateMessage(MSG* pMsg) 
{
	ASSERT(pMsg != 0);

	if (pMsg->message == WM_KEYDOWN ||
		pMsg->message == WM_SYSKEYDOWN ||
		pMsg->message == WM_LBUTTONDOWN ||
		pMsg->message == WM_RBUTTONDOWN ||
		pMsg->message == WM_MBUTTONDOWN )
	{
		KillTimer(m_nTimerID);
		m_wndInvisible.DestroyWindow();         
		delete this;
		return TRUE;
	}        
	return CWnd::PreTranslateMessage(pMsg);
}
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -