添加.h和cpp
#pragma once #include "afxwin.h" class mySplash :public CWnd {DECLARE_DYNAMIC(mySplash)protected:DECLARE_MESSAGE_MAP()public:CBitmap m_bitmap;void Create(UINT nBitmapID);afx_msg void OnPaint();afx_msg void OnTimer(UINT_PTR nIDEvent); public:mySplash(void);~mySplash(void); };
#include "stdafx.h"#include "mySplash.h"IMPLEMENT_DYNAMIC(mySplash, CWnd)mySplash::mySplash(){}mySplash::~mySplash(){}BEGIN_MESSAGE_MAP(mySplash, CWnd)ON_WM_PAINT()ON_WM_TIMER()END_MESSAGE_MAP()void mySplash::Create(UINT nBitmapID){m_bitmap.LoadBitmap(nBitmapID);BITMAP bitmap;m_bitmap.GetBitmap(&bitmap);CreateEx(0,AfxRegisterWndClass(0, AfxGetApp()->LoadStandardCursor(IDC_ARROW)),NULL, WS_POPUP | WS_VISIBLE, 0, 0, bitmap.bmWidth, bitmap.bmHeight, NULL, NULL);}void mySplash::OnPaint(){CPaintDC dc(this); BITMAP bitmap;m_bitmap.GetBitmap(&bitmap);CDC dcComp;dcComp.CreateCompatibleDC(&dc);dcComp.SelectObject(&m_bitmap);dc.BitBlt(0, 0, bitmap.bmWidth, bitmap.bmHeight, &dcComp, 0, 0, SRCCOPY);}void mySplash::OnTimer(UINT_PTR nIDEvent){DestroyWindow(); //销毁初始画面窗口 }
而后在initdialog中添加
mySplash wndSplash; //创建启动窗口类的实例 wndSplash.Create(IDB_BITMAP1); wndSplash.CenterWindow(); wndSplash.UpdateWindow(); //send WM_PAINT Sleep(2500); wndSplash.DestroyWindow();//销毁初始画面窗口