📄 splash.cpp
字号:
// CG: This file was added by the Splash Screen component.// Splash.cpp : implementation file//#include "stdafx.h" // e. g. stdafx.h#include "resource.h" // e.g. resource.h#include "Splash.h" // e.g. splash.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char BASED_CODE THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// Splash Screen classBOOL RxSplashWnd::c_bShowSplashWnd;RxSplashWnd* RxSplashWnd::c_pSplashWnd;RxSplashWnd::RxSplashWnd(){}RxSplashWnd::~RxSplashWnd(){ // Clear the static window pointer. ASSERT(c_pSplashWnd == this); c_pSplashWnd = NULL;}BEGIN_MESSAGE_MAP(RxSplashWnd, CWnd) //{{AFX_MSG_MAP(RxSplashWnd) ON_WM_CREATE() ON_WM_PAINT() ON_WM_TIMER() //}}AFX_MSG_MAPEND_MESSAGE_MAP()void RxSplashWnd::EnableSplashScreen(BOOL bEnable /*= TRUE*/){ c_bShowSplashWnd = bEnable;}void RxSplashWnd::ShowSplashScreen(CWnd* pParentWnd /*= NULL*/){ if (!c_bShowSplashWnd || c_pSplashWnd != NULL) return; // Allocate a new splash screen, and create the window. c_pSplashWnd = new RxSplashWnd; if (!c_pSplashWnd->Create(pParentWnd)) delete c_pSplashWnd; else c_pSplashWnd->UpdateWindow();}BOOL RxSplashWnd::PreTranslateAppMessage(MSG* pMsg){ if (c_pSplashWnd == NULL) return FALSE; // If we get a keyboard or mouse message, hide the splash screen. if (pMsg->message == WM_KEYDOWN || pMsg->message == WM_SYSKEYDOWN || pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_RBUTTONDOWN || pMsg->message == WM_MBUTTONDOWN || pMsg->message == WM_NCLBUTTONDOWN || pMsg->message == WM_NCRBUTTONDOWN || pMsg->message == WM_NCMBUTTONDOWN) { c_pSplashWnd->HideSplashScreen(); return TRUE; // message handled here } return FALSE; // message not handled}BOOL RxSplashWnd::Create(CWnd* pParentWnd /*= NULL*/){ if (!m_bitmap.LoadBitmap(IDB_FUSION_SPLASH)) return FALSE; BITMAP bm; m_bitmap.GetBitmap(&bm); return CreateEx(0, AfxRegisterWndClass(0, AfxGetApp()->LoadStandardCursor(IDC_ARROW)), NULL, WS_POPUP | WS_VISIBLE, 0, 0, bm.bmWidth, bm.bmHeight, pParentWnd->GetSafeHwnd(), NULL);}void RxSplashWnd::HideSplashScreen(){ // Destroy the window, and update the mainframe. DestroyWindow(); AfxGetMainWnd()->UpdateWindow();}void RxSplashWnd::PostNcDestroy(){ // Free the C++ class. delete this;}int RxSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; // Center the window. CenterWindow(); // Set a timer to destroy the splash screen. SetTimer(1, 1500, NULL); return 0;}void RxSplashWnd::OnPaint(){ CPaintDC dc(this); CDC dcImage; if (!dcImage.CreateCompatibleDC(&dc)) return; BITMAP bm; m_bitmap.GetBitmap(&bm); // Paint the image. CBitmap* pOldBitmap = dcImage.SelectObject(&m_bitmap); dc.BitBlt(0, 0, bm.bmWidth, bm.bmHeight, &dcImage, 0, 0, SRCCOPY); dcImage.SelectObject(pOldBitmap);}void RxSplashWnd::OnTimer(UINT nIDEvent){ // Destroy the splash screen window. HideSplashScreen();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -