添加.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();//销毁初始画面窗口
时间: 2024-10-02 06:33:59